在 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 参数进行比较,了解它是如何被忽略的。
我正在尝试了解如何让 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 参数进行比较,了解它是如何被忽略的。