【问题标题】:closing a snackbar on clicking a button other than action button of it in android在android中单击一个按钮而不是它的操作按钮时关闭一个快餐栏
【发布时间】:2019-11-24 00:08:58
【问题描述】:

我使用代码显示一个小吃店

Snackbar.make(rootView, mMessage, Snackbar.LENGTH_LONG)
                .make(rootView, mMessage, Snackbar.LENGTH_INDEFINITE)
                .setAction("Action", null)
                .show();

此小吃栏一直显示在屏幕上

我想做的事

  • 一旦它一直显示在屏幕上,当我点击它时如何关闭它 在不同于小吃店操作按钮的视图上
  • 有没有可能

【问题讨论】:

  • 您是否尝试过在snackbar 对象上使用dismiss 方法?当然首先保存对小吃店的引用,而不是立即调用show
  • 尝试通过将其分配给局部变量并从该变量调用dismiss来保持对您的小吃店的引用

标签: android snackbar


【解决方案1】:

你可以用 InkWell 包围:

SnackBar(
  content: InkWell(
    onTap: () {ScaffoldMessenger.of(context).hideCurrentSnackBar();},

【讨论】:

    【解决方案2】:

    只需使用 yourSnackbar.dismiss();

    【讨论】:

      【解决方案3】:
      mySnackbar = Snackbar.make(rootView, mMessage, Snackbar.LENGTH_LONG)
                      .make(rootView, mMessage, Snackbar.LENGTH_INDEFINITE)
                      .setAction("Action", null);
      mySnackbar.show();
      

      在这之后就做(在其他视图的onClickListener):

      mySnackbar.dismiss();
      

      【讨论】:

      • 该死,正要发布答案:)
      • 似乎我们中的一些人是。我先输入评论,然后输入答案:D
      • 大脑滞后 :( 我不认为 OP 发布的代码实际上会成为一个有效的小吃店,双 .make 声明
      【解决方案4】:

      您可以通过保留对该快餐栏实例的引用来做到这一点:

      val snackbar = Snackbar.make(rootView, mMessage, Snackbar.LENGTH_LONG)
                      .make(rootView, mMessage, Snackbar.LENGTH_INDEFINITE)
                      .setAction("Action", null)
                      .show();
      

      现在,只要您想解除它,只需致电 .dismiss(),就您而言:

      theOtherButton.setOnClickListener { snackbar.dismiss() }
      

      【讨论】:

      • val 是 kotlin,不是 java :)
      • 所以?问题在哪里显示它是 Java 还是 Kotlin? ^^
      • 它在.show(); 有一个分号哈哈,但我不怪你,我已经做 kotlin 这么久了,用 java 回答问题几乎是不可能的:)
      • ';'在 Kotlin 中是允许的,呵呵。但是这 -> techcrunch.com/2019/05/07/… 激励我在 Kotlin 中发帖(而且我在日常工作中不使用 Java 呵呵)
      • 我同意在 kotlin 中允许使用分号,但大多数人都学会了删除它们,此外,OP 在 java 中发布了各种其他问题,但实际上我们现在只是在争论:)不管怎样,我都同意你的回答:)
      猜你喜欢
      • 2022-12-18
      • 2021-10-26
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2016-01-27
      • 2014-11-21
      • 2017-07-29
      相关资源
      最近更新 更多