这是我的 Snackbar 代码:
Snackbar.make(viewHolder.productView, "Some Text Here ..", Snackbar.LENGTH_SHORT)
.setAction("I want be a icon here instead TEXT", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Perform anything for the action selected
}
})
.show();
有没有在 .setAction
中添加图标而不是文本?
我知道google suggested not use icon in Snackbar ,但我想使用它。
最佳答案
ImageSpan 对于较长的文本(多行)可能看起来不正确。相反,请使用左侧复合可绘制对象(与 android:drawableLeft
相同)。
Snackbar snackbar = Snackbar.make(layout, R.string.test, Snackbar.LENGTH_LONG);
View snackbarLayout = snackbar.getView();
TextView textView = (TextView)snackbarLayout.findViewById(android.support.design.R.id.snackbar_text);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.white_checkbox, 0, 0, 0);
textView.setCompoundDrawablePadding(getResources().getDimensionPixelOffset(R.dimen.snackbar_icon_padding));
snackbar.show();
如果您使用的是 AndroidX Material 库,请替换 android.support.design.R.id.snackbar_text
与 com.google.android.material.R.id.snackbar_text
.
关于android - 有什么方法可以将图标添加到 Snackbar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285039/