我可以像这样显示 snackbar。
Snackbar snackbar = Snackbar.make(this.findViewById(android.R.id.content), "snackbar", Snackbar.LENGTH_INDEFINITE)
.setAction("action", new View.OnClickListener() {
@Override
public void onClick(View v) {
// ...
}
});
snackbar.show();
我的 snackbar 有无限长,我想要它。但是当用户执行任何操作时,例如滚动屏幕或触摸屏幕/ View ,我想关闭 snackbar。我可以找到一些库和代码,但它们太复杂了。有没有简单的方法来关闭 snackbar?
最佳答案
我假设您正在使用 fragment ,因此您可以为 fragment 主布局设置一个 onTouchListener,并放入 snackbar.dismiss() 中。
如果您只想在滚动时关闭,请设置一个 onScrollListener 并在事件中关闭 snackbar ,这是 recyclerview onScroll 的实现:
list.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0)
snackbar.dismiss();
}
});
关于android - 如何在用户执行任何操作时关闭 Snackbar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974224/