在 SnackBar 上设置 OnClickListener 而不是 setAction()?

Setting OnClickListener on SnackBar not setAction()?

我正在尝试了解如何让 snackbar 具有 onClickListener。这是一个简单的代码:

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            snackbar.make(v, "This is a snackBar", Snackbar.LENGTH_LONG)
                    .setTextColor(Color.BLUE)
                    .show();
        }
    });

我知道 setAction(),但我希望 snackBar 本身成为我的点击按钮。我知道新的 androidx 支持库已经改变,所以我在网上找到的许多解决方案都不再有用了。

编辑:为什么这段代码不能用它?

View view = snackbar.getView();
    TextView text = view.findViewById(com.google.android.material.R.id.snackbar_text);
    text.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          
        }
    });

我已经通过在 onClickListner() 中对 snackbar 对象进行编码而不是作为字段对象引入来解决我的问题。显然我的主要问题与这个问题有关。

如果小吃店是指 android.support.design.widget.Snackbar, then you might want to use the addCallback 方法,则在解雇时收到通知。

snackbar.addCallback(new Snackbar.Callback() {
  @Override
  public void onDismissed(final Snackbar snackbar, final int event) {
    ...
  }
});

event 参数与 static constants 参数进行比较,了解它是如何被忽略的。