我已将回调定义为处理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
我做错了什么?有什么想法吗?
答案 0 :(得分:0)
这可能是因为另一家小吃店正在取代它。在这种情况下,较早的将被调用onDismissed()
,而新的将被onShown()
。在日志中,您还应该看到每种方法都需要使用哪个小吃店。您还可以检查调用了onDismissed()
的事件。如果为4,则表示它已被替换为另一个小吃店而被撤消。
希望对您有帮助!