android - 有什么方法可以将图标添加到 Snackbar?

标签 android android-snackbar

这是我的 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_textcom.google.android.material.R.id.snackbar_text .

关于android - 有什么方法可以将图标添加到 Snackbar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285039/

相关文章:

android - Pushbot Android 或 IOS 如何让设备注册特定类型的消息

覆盖 Google Pixel 中控制按钮的 Android Snackbar

android - 如何自定义 Snackbar 中 Action 按钮的样式

尝试膨胀自定义布局时,Android Snackbar 不占用全宽

java - Java 中的指针、 vector 和迭代器

android - 如何在 kotlin 中获取当前构建变体

android - Phonegap 安卓 : Unknown chromium error: -6

android - PJSUA2 sip android 原生应用

Android:显示工具栏时显示 snackbar

android - 平板电脑上的 Snackbar 半宽