我有一个实现 swipetorefresh
布局的 recyclerview - 如果您在列表中向下滑动手指,它将加载较新的帖子。它还有一个 onloadmorelistener
用于对我的 recyclerview 进行分页 - 如果您在 recyclerview 上滑动手指,它将加载较旧的帖子。
我正在尝试构建一个 snackbar
通知,如果用户离线并且他试图完成某种类型的网络 Activity ,比如加载旧的或新的帖子,snackbar 会出现告诉他没有互联网。
在没有互联网且用户在回收站 View 上向上和向下滑动的情况下,会显示两个显示相同“无互联网”消息的 snackbar 通知。实际上,我只想显示一个。
因此,我正在寻找一些独特的方法来识别显示在 snackbar 中的文本,这样如果两个 snackbar 中的文本相同,则只显示一个 snackbar 但没有 getText()
方法在 snackbar 中并且只有 setText()
: http://developer.android.com/intl/es/reference/android/support/design/widget/Snackbar.html
我还看到有回调方法:http://developer.android.com/intl/es/reference/android/support/design/widget/Snackbar.Callback.html但在我的场景中,这些似乎都没有帮助。
我希望在创建 snackbar 时可以给它一个独特的标志以供识别,但 Snackbar.make
方法不允许这样做。
有没有人成功解决过类似的问题?
最佳答案
使用 snackbar 回调。例如,当它显示时将其添加到列表中,然后在调用回调时将其删除,因此您只有仍然可见的 snackbar 。回调示例:
snackbar.setCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
//see Snackbar.Callback docs for event details
...
}
@Override
public void onShown(Snackbar snackbar) {
...
}
});
关于android - snackbar : how to identify which snackbar is shown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34547137/