在 androidx 中更改 snackbar 字体

Changing snackbar typeface in androidx

在迁移到 androidx 之前,我使用此代码更改了 snackbar 文本的字体:

Snackbar snackbar = Snackbar.make(main_Coordinator, "No Connection", Snackbar.LENGTH_INDEFINITE);
                View view = snackbar.getView();
                TextView textView = view.findViewById(android.support.design.R.id.snackbar_text);
                textView.setTypeface(Typeface.createFromAsset(getAssets(), "Shabnam.ttf"));

但是在迁移到 androidx 之后,我收到 snackbar_text id android.support.design.R.id.snackbar_text 的错误,它说 Cannot resolve symbol design

而且我还在使用新的设计库com.google.android.material:material:1.0.0

有什么帮助吗?

使用com.google.android.material.R.id.snackbar_text

您已迁移到 AndroidX,这意味着库现在有所不同。因此,您引用的 R 需要来自新库而不是旧库。

就这样参考新的设计库 -

Snackbar snackbar = Snackbar.make(main_Coordinator, "No Connection", Snackbar.LENGTH_INDEFINITE);
            View view = snackbar.getView();
            TextView textView = view.findViewById(com.google.android.material.R.id.snackbar_text);
            textView.setTypeface(Typeface.createFromAsset(getAssets(), "Shabnam.ttf"));