首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当一个Snackbar已经解散时,如何通知我?

当一个Snackbar已经解散时,如何通知我?
EN

Stack Overflow用户
提问于 2015-06-18 21:49:14
回答 13查看 41.9K关注 0票数 107

我正在使用com.android.support:design:22.2.0库中的一个Snackbar。我用它来撤销删除。为了让我的生活更轻松,我将使UI看起来就像实际上已经从数据源中删除了一样,如果没有按下快餐店中的undo按钮,实际上会从数据源中执行删除操作。所以,我想知道什么时候Snackbar不再可见,所以删除这些条目是安全的。

我可以在Snackbar上调用getView(),但我不确定我应该使用哪个侦听器。我试过setOnSystemUiVisibilityChangeListener(),但这不起作用,我相信它只适用于系统状态栏。

此外,Snackbar不能扩展,因为它有一个私有构造函数。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-10-12 08:32:39

Google设计库支持版本23中的Snackbar回调。见Snackbar文档回调文档。然后,当Snackbar被解职时(以及显示时)以及解雇类型(如果这对您有用的话),您将得到通知:

代码语言:javascript
复制
snackbar.addCallback(new Snackbar.Callback() {

    @Override
    public void onDismissed(Snackbar snackbar, int event) {
      //see Snackbar.Callback docs for event details
      ...  
    }

    @Override
    public void onShown(Snackbar snackbar) {
       ...
    }
  });
票数 209
EN

Stack Overflow用户

发布于 2016-03-02 12:56:57

代码语言:javascript
复制
snackbar.addCallback(new Snackbar.Callback() {

    @Override
    public void onDismissed(Snackbar snackbar, int event) {
        if (event == Snackbar.Callback.DISMISS_EVENT_TIMEOUT) {
            // Snackbar closed on its own
        }
    }

    @Override
    public void onShown(Snackbar snackbar) {
        ...
    }
});
票数 56
EN

Stack Overflow用户

发布于 2019-01-18 15:17:42

科特林的Snackbar.addCallback

代码语言:javascript
复制
val snackBar = Snackbar
                .make(view, "Text Snackbar", Snackbar.LENGTH_LONG)
                .addCallback(object : BaseTransientBottomBar.BaseCallback<Snackbar>() {
                    override fun onShown(transientBottomBar: Snackbar?) {
                        super.onShown(transientBottomBar)
                    }

                    override fun onDismissed(transientBottomBar: Snackbar?, event: Int) {
                        super.onDismissed(transientBottomBar, event)
                    }
                })

        val snackBarView = snackBar.view
        snackBarView.setBackgroundColor(Color.RED)
        snackBar.show()
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30926380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档