我想实现最新的设计支持库中包含的新的Snackbar,但是它的提供方式似乎与我的直觉相反,而且我认为其他很多人都在使用它。
当用户执行一个重要的操作时,我希望允许他们通过Snackbar撤销它,但是似乎无法检测出何时取消它来执行该操作。这样做对我来说是有意义的:
但是,由于我没有看到任何可访问的OnDismissListener,因此我不得不:
我真的很想避免对数据库进行两次调用,并且在应用程序知道它是安全的(用户已经避免按“撤销”)的情况下,只发送一个。我注意到通过EventListener在第三方库中有一些实现,但我真的很想继续使用Google库。
发布于 2015-08-24 19:44:01
现在它是有吗?
Snackbar.make(getView(), "Hi there!", Snackbar.LENGTH_LONG).setCallback( new Snackbar.Callback() {
                @Override
                public void onDismissed(Snackbar snackbar, int event) {
                    switch(event) {
                        case Snackbar.Callback.DISMISS_EVENT_ACTION:
                            Toast.makeText(getActivity(), "Clicked the action", Toast.LENGTH_LONG).show();
                            break;
                        case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
                            Toast.makeText(getActivity(), "Time out", Toast.LENGTH_LONG).show();
                            break;
                    }
                }
                @Override
                public void onShown(Snackbar snackbar) {
                    Toast.makeText(getActivity(), "This is my annoying step-brother", Toast.LENGTH_LONG).show();
                }
            }).setAction("Go away!", new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                }
            }).show();https://stackoverflow.com/questions/30639470
复制相似问题