android – 防止Snackbar解除动作点击

前端之家收集整理的这篇文章主要介绍了android – 防止Snackbar解除动作点击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何防止Android Snackbar在setAction onclick上解雇,谢谢

Snackbar.make(rootlayout,"Hello SnackBar!",Snackbar.LENGTH_INDEFINITE)
   .setAction("Undo",new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           // Snackbar should not dismiss
       }
   })
   .show();
最佳答案
这是一个更简洁的解决方案,不需要反射.它基于知道Snackbar中按钮的视图ID.这与支持库的版本27.1.1一起使用,但如果视图ID将被更改,则可能在将来的版本中不再有效!

首先,使用空的OnClickListener设置快餐栏操作:

snackbar.setAction("Save",new View.OnClickListener() {
    @Override
    public void onClick(View v) {}
});

然后,在小吃栏上添加回调(在显示之前).覆盖onShown函数,使用R.id.snackbar_action找到按钮并向其添加自己的OnClickListener.只有在手动调用snackbar.dismiss()时才会关闭快餐栏,或者如果快餐栏附加到CoordinatorLayout(如何禁用滑动是一个不同的SO问题),则会轻扫.

snackbar.addCallback(new BaseTransientBottomBar.BaseCallback
原文链接:https://www.f2er.com/android/430063.html

猜你在找的Android相关文章