【问题标题】:Snackbar callback onDismiss() called first首先调用 Snackbar 回调 onDismiss()
【发布时间】:2017-05-15 08:22:43
【问题描述】:

我已经定义了处理snackbardismiss()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 所以你看不到它吗?
  • 你想快速显示多次吗?

标签: android callback listener snackbar


【解决方案1】:

这可能是因为另一家小吃店正在取代这家。在这种情况下,onDismissed() 将被调用为较早的和onShown() 为新的。在您的日志中,您还应该看到每种方法正在调用哪个小吃店。您还可以检查调用onDismissed() 的事件。如果为 4,则表示已因被其他小吃店取代而被解雇。 希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2018-06-22
    • 2017-09-09
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多