更改小吃店的字体

2022-09-02 04:58:16

我通过以下代码构建Snackbar:

Snackbar sb = Snackbar.make(drawer,  "message", Snackbar.LENGTH_LONG)
       .setAction("action", new View.OnClickListener() {
       @Override
       public void onClick(View view) {

       }
});

现在我想更改消息和操作按钮的字体,但找不到任何解决方案,如何做到这一点?


答案 1

您可以通过从小吃店获取视图来设置字体

TextView tv = (TextView) (mSnackBar.getView()).findViewById(android.support.design.R.id.snackbar_text);
Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/font_file.ttf");
tv.setTypeface(font);

对于 AndroidX,请使用资源 IDcom.google.android.material.R.id.snackbar_text


答案 2

设置小吃栏文本和操作的样式

可以使用相同的方法设置 和 的样式。snackbar_textsnackbar_action

创建小吃店后,可以使用以下内容获取与文本和操作关联的视图,然后对视图应用任何调整。

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 );

在我的示例中,我将 Action 设置为字体大小为 20 和粗体,将 Text 设置为大小为 16,最多允许 3 行。


推荐