Snackbar 在操作点击时不会被关闭

Posted

技术标签:

【中文标题】Snackbar 在操作点击时不会被关闭【英文标题】:Snackbar not being dismissed on action click 【发布时间】:2019-10-07 01:39:06 【问题描述】:

通过点击事件,我试图在 Snackbar 打开时关闭它。但是,由于某种原因,尽管打开成功,它并没有被关闭。

如果EditText 为空,我希望Snackbar 出现 否则,如果 EditText 不为空,我希望 Snackbar 被关闭

我试过用这个,但是没用:

if (mSnackbar.isShown) 
    mSnackbar.dismiss()

在这种情况下是否需要使用回调?如果是,我不确定它需要去哪里。

val mSnackbar = Snackbar.make(mRootView, "Hello World", Snackbar.LENGTH_LONG)
val mEditText = findViewById(R.id.my_edit_text) as EditText
val mBtn = findViewById(R.id.my_btn) as Button

mBtn.setOnClickListener 
    if (mTextView.text.isEmpty()) 
        mSnackbar.show()
     else 
        if (mSnackbar.isShown) 
            mSnackbar.dismiss()
        
    
 

【问题讨论】:

为什么你试图在按钮点击中显示? 【参考方案1】:

试试这样的。

mBtn.setOnClickListener 
    if (mTextView.text.isEmpty()) 
        mSnackbar.show()
     else 
        mSnackbar.dismiss()
    

【讨论】:

What are you get at else try to create a Log below the else and 检查条件是否适用于if statementelse 为什么我添加了这段代码。在按钮单击侦听器处,检查文本是否为空显示快餐栏,否则关闭。感谢您接受我的回答。

以上是关于Snackbar 在操作点击时不会被关闭的主要内容,如果未能解决你的问题,请参考以下文章

(android) 小吃吧结束后如何关闭活动?

使用 SnackBar 实例再次显示

防止 Snackbar 在操作单击时关闭

关于SnackBar被键盘挡住的解决方案

当用户执行任何操作时如何关闭 Snackbar?

当用户在其他地方交互时如何关闭 Snackbar?