簡體   English   中英

在 SnackBar 上設置 OnClickListener 不是 setAction()?

[英]Setting OnClickListener on SnackBar not setAction()?

我試圖找出如何讓小吃店擁有一個 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() 中編碼小吃欄 object 而不是作為字段 object 引入來解決我的問題。 顯然我的主要問題與這個變化有關。

如果您所說的快餐欄是指android.support.design.widget.Snackbar ,那么您可能需要使用addCallback方法,以便在解雇時收到通知。

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

event參數與static 常量進行比較,以了解它是如何被解除的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM