首先调用 Snackbar 回调 onDismiss()
Posted
技术标签:
【中文标题】首先调用 Snackbar 回调 onDismiss()【英文标题】:Snackbar callback onDismiss() called first 【发布时间】:2017-05-15 08:22:43 【问题描述】:我已经定义了处理snackbar
dismiss()
和show()
的回调。
Snackbar snackbar = Snackbar.make(rootView, message, Snackbar.LENGTH_LONG);
View snackBarView = snackbar.getView();
snackBarView.setBackgroundColor(Color.argb(255, 8, 20, 37));
snackbar.setCallback(new Snackbar.Callback()
@Override
public void onShown(Snackbar snackbar)
super.onShown(snackbar);
Debug.e(TAG, "Shown");
@Override
public void onDismissed(Snackbar snackbar, int event)
super.onDismissed(snackbar, event);
Debug.e(TAG, "Dismissed");
);
snackbar.show();
但是当我检查我的 Logcat 时,onDismiss()
在 onShown()
之前调用
12-31 12:36:29.601 2883-2883/BaseFragment: Dismissed
12-31 12:36:29.880 2883-2883/BaseFragment: Shown
那么我做错了吗?有什么想法吗?
【问题讨论】:
我测试过效果很好:) 设计库版本是多少? 支持设计库版本为23.4.0 @Jaymin Panchal 所以你看不到它吗? 你想快速显示多次吗? 【参考方案1】:这可能是因为另一家小吃店正在取代这家。在这种情况下,onDismissed()
将被调用为较早的和onShown()
为新的。在您的日志中,您还应该看到每种方法正在调用哪个小吃店。您还可以检查调用onDismissed()
的事件。如果为 4,则表示已因被其他小吃店取代而被解雇。
希望对您有所帮助!
【讨论】:
以上是关于首先调用 Snackbar 回调 onDismiss()的主要内容,如果未能解决你的问题,请参考以下文章
如何在 EventChannel.listen 的回调 onEvent 中显示 SnackBar