Snackbar:如何识别显示哪个快餐栏

Sim*_*mon 6 android android-snackbar

我有一个实现swipetorefresh布局的recyclerview - 如果你在列表中向下滑动手指,它将加载更新的帖子.它还有一个onloadmorelistener用于分页我的Recyclerview的东西 - 如果你在Recyclerview上向上滑动手指,它将加载较旧的帖子.

我正在尝试建立一个snackbar通知,如果用户离线并且他试图完成某种类型的网络活动,比如加载旧帖或新帖,小吃栏会显示告诉他"没有互联网".

在没有互联网并且用户在回收者视图上向上滑动并向下滑动的情况下,显示了显示相同"无互联网"消息的两个快餐栏通知.我实际上只想要一个人来展示.

因此,我正在寻找一些独特的方法来识别小吃栏中显示的文本,这样如果两个小吃栏中的文本相同,则只显示一个小吃栏,但小吃栏中没有getText()方法,只有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.make方法不允许这样做.

有没有人成功地解决了类似的问题?

Hel*_*lmi 9

使用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) {
       ...
    }
  });
Run Code Online (Sandbox Code Playgroud)