首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snackbar动作getView()

Snackbar动作getView()
EN

Stack Overflow用户
提问于 2016-03-21 21:16:50
回答 3查看 2.3K关注 0票数 4

在我的活动中,我实现了OnClickListener接口

MainActivity extends AppCompatActivity implements View.OnClickListener

就像这样的零食吧:

代码语言:javascript
复制
snackbar = Snackbar.make(view, R.string.msg, Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.action_undo, this);

但是我不能在实现的OnClickListener接口方法上处理它。

代码语言:javascript
复制
@Override
public void onClick(View v) {
    // this not work!
    // snackbar id is different from snackbar action id
    if (v.getId() == snackbar.getView().getId()) {

    }
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-21 22:44:42

对于每个SnackbarSnackbar文本视图资源id是

代码语言:javascript
复制
    android.support.design.R.id.snackbar_text

Snackbar操作视图资源id是

代码语言:javascript
复制
    android.support.design.R.id.snackbar_action

如果我正确理解了您的问题,您希望获得Snackbar操作资源id。正如我前面提到的,您可以很容易地得到它,在onClick()中,您可以像-

代码语言:javascript
复制
@Override
public void onClick(View v) {

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

    }
}
票数 11
EN

Stack Overflow用户

发布于 2017-11-15 12:46:34

代码语言:javascript
复制
v.getId()

总是(保留):

代码语言:javascript
复制
android.support.design.R.id.snackbar_action

文档

票数 1
EN

Stack Overflow用户

发布于 2016-03-21 21:28:40

您可以尝试这样做,以便在snackbar上设置操作。

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36141760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档