【问题标题】:Can't click action button on Snackbar无法单击 Snackbar 上的操作按钮
【发布时间】:2019-05-15 09:54:02
【问题描述】:

无法在带有数据绑定的片段内点击 SnackBar 上的按钮。

这里是java代码:

        final Snackbar snackBar = Snackbar.make(binding.layoutMain, error, Snackbar.LENGTH_LONG);

    snackBar.setAction("TRY", new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
    snackBar.show();

编辑: 连接错误不是对话框。

更新:

我尝试将 NestedScrollView 的可见性设置为 GONE 只是为了测试。 Snackbar 似乎工作正常。和布局有关吗?

【问题讨论】:

  • 在你的点击监听器中添加一些你不知道会发生什么的逻辑
  • 连接错误是对话框吗?
  • @MilanPansuriya 基于这个link 实现一个点击动作,让它为空。点击空的点击动作将关闭快餐栏。
  • @KaranMer 不,不是
  • 你看过这个问题的答案吗它显示snackBar.dismiss();在 onclicklistner 中

标签: android android-fragments android-databinding android-snackbar


【解决方案1】:

试试这个。

Snackbar snackbar = Snackbar
        .make(cb,"Your Text",Snackbar.LENGTH_INDEFINITE)
        .setAction("COPY TO", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
            }
        });

snackbar.show();

并尝试在点击小吃店时关闭没有连接的对话框

【讨论】:

  • 试过这个。还是一样:(还是谢谢。
【解决方案2】:

这样做可以在snackbar上实现动作

     final Snackbar snackBar = Snackbar.make(binding.layoutMain, error, Snackbar.LENGTH_LONG).setAction("Dismiss", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    //Do your code
  snackBar.dismiss();
            }
        });
        snackBar.show();

【讨论】:

  • 还是一样。无论如何感谢您的回答。
【解决方案3】:

我喜欢这个

  Snackbar snackbar = Snackbar.make( coordinator_,
            service_name+" Service Added To Cart!", 1000);

    //setting the snackbar action button text size
    View view = snackbar.getView();
    TextView txt_action = (TextView) view.findViewById(android.support.design.R.id.snackbar_action);
    TextView txt_text = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
    txt_action.setTextSize(13);
    txt_action.setAllCaps(false);
    txt_text.setTextSize(13);
    snackbar.setActionTextColor(ContextCompat.getColor(getActivity(), R.color.snackbar));

    snackbar.setAction("View Cart", new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //your code
        }
    });
    snackbar.show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2020-09-21
    • 2013-01-02
    相关资源
    最近更新 更多