Jos*_*ter 10

使用snackbar_action资源ID.

您可以使用相同的方法设置Snackbar的Action文本的样式,该文本用于设置Snackbar的Message文本的样式.

您只需使用资源ID snackbar_action而不是snackbar_text.

下面是设置样式的例子在消息文本和操作文本.

Snackbar snackbar = Snackbar.make( ... )    // Create the Snackbar however you like.

TextView snackbarActionTextView = (TextView) snackbar.getView().findViewById( android.support.design.R.id.snackbar_action );
snackbarActionTextView.setTextSize( 20 );
snackbarActionTextView.setTypeface(snackbarActionTextView.getTypeface(), Typeface.BOLD);

TextView snackbarTextView = (TextView) snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
snackbarTextView.setTextSize( 16 );
snackbarTextView.setMaxLines( 3 );
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我将Action文本设置TextSize为20和粗体Typeface,并将Message文本设置TextSize为16,并允许最多3行.


Bre*_*ntM 2

将粗体文本添加到 Snackbar 文本的最简单方法是使用Android Html 类生成文本以传递给 Snackbar.make() 函数。这是一个例子:

Snackbar.make(view, Html.fromHtml("Add <b>bold</b> to Snackbar text"), Snackbar.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用SpannableStringBuilder类。

SpannableStringBuilder snackbarText = new SpannableStringBuilder();
snackbarText.append("Add ");
int boldStart = snackbarText.length();
snackbarText.append("bold");
snackbarText.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), boldStart, snackbarText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
snackbarText.append(" to Snackbar text");
Snackbar.make(view, snackbarText, Snackbar.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

  • 谢谢布伦特。这适用于主要文本,但不适用于操作文本:(。我正在寻找通过 `snackbar.setAction(snackbarActionText, ...);` 设置的粗体文本 (2认同)