[英]Setting OnClickListener on SnackBar not setAction()?
I am trying to find out how can I get snackbar to to have an onClickListener.我试图找出如何让小吃店拥有一个 onClickListener。 here is a simple code:
这是一个简单的代码:
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();
}
});
I know about setAction() but I want snackBar itself be my click button.我知道 setAction() 但我希望snackBar 本身成为我的点击按钮。 I know new androidx support library has changed so many of the solutions I found online are not useful anymore.
我知道新的 androidx 支持库已经改变了很多我在网上找到的解决方案不再有用了。
EDIT: Why this piece of code does not work with it?编辑:为什么这段代码不起作用?
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) {
}
});
I Have fixed my problem by coding the snackbar object inside the onClickListner() instead of introduced as a field object.我已经通过在 onClickListner() 中编码小吃栏 object 而不是作为字段 object 引入来解决我的问题。 Apparently my main issue was related to this chnage.
显然我的主要问题与这个变化有关。
If by snackbar you mean android.support.design.widget.Snackbar , then you might want to use the addCallback method, to be notified on dismissal.如果您所说的快餐栏是指android.support.design.widget.Snackbar ,那么您可能需要使用addCallback方法,以便在解雇时收到通知。
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(final Snackbar snackbar, final int event) {
...
}
});
Compare the event
parameter with the static constants to understand how it was dismissed.将
event
参数与static 常量进行比较,以了解它是如何被解除的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.