Snackbar 动作 getView()

Snackbar action getView()

在我的 Activity 中,我实现了 OnClickListener 接口

MainActivity extends AppCompatActivity implements View.OnClickListener

像这样初始化小吃店:

snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, this);

但我无法在实现的 OnClickListener 接口方法上处理它

@Override
public void onClick(View v) {
    // this not work!
    // snackbar id is different from snackbar action id
    if (v.getId() == snackbar.getView().getId()) {

    }
}

有人知道如何从 snackbar 获取动作视图吗?

您可以试试这个来设置小吃店的动作。

View.OnClickListener snackbarClickListener = new View.OnClickListener() {
         @Override
         public void onClick(View v) {

         }
     };

snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, snackbarClickListener);

对于每个 SnackbarSnackbar 文本视图资源 ID 为

    android.support.design.R.id.snackbar_text

并且 Snackbar 操作视图资源 ID 是

    android.support.design.R.id.snackbar_action

如果我正确理解了你的问题,你想要获取 Snackbar 操作资源 ID。你可以很容易地得到它,正如我上面提到的,在 onClick() 中,你可以像 -

一样使用它
@Override
public void onClick(View v) {

    if (v.getId() == android.support.design.R.id.snackbar_action) {

    }
}
v.getId()

始终(保留):

android.support.design.R.id.snackbar_action

Doc