android - 使用可下载字体作为自定义 Snackbar 字体

标签 android android-layout android-support-library android-snackbar android-downloadable-fonts

正在使用支持库测试 Android 可下载字体的新功能。

它在我的 TextView 和自定义对话框的整个应用程序中正常工作,但是当尝试将它用作 Snackbar 中的自定义字体时,它使应用程序崩溃了。我在对话框 OnClick 中的用法是这样的。

Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), R.string.snackbar_confirm_removal_or_wait, Snackbar.LENGTH_LONG)
                                    .setAction(R.string.snackbar_delete, new View.OnClickListener() {
                                        @Override
                                        public void onClick(View view) {
                                            String quote = quotes.get(position).quote;
                                            deleteEntry(quote);
                                            quotes.remove(position);
                                            adapter.notifyDataSetChanged();
                                            Snackbar.make(findViewById(android.R.id.content), R.string.snackbar_deleted, Snackbar.LENGTH_SHORT)
                                                    .setDuration(1000)
                                                    .show();
                                        }
                                    })
                                    .setDuration(8500)
                                    .setActionTextColor(ContextCompat.getColor(QuoteActivity2.this, R.color.snackbar_varning_red));
                            TextView textView = (mSnackbar.getView()).findViewById(android.support.design.R.id.snackbar_text);
                            Typeface typeface = ResourcesCompat.getFont(QuoteActivity2.this, R.font.roboto_slab);
                            textView.setTypeface(typeface);
                            snackbar.show();

我的 logcat 在特定崩溃时给出以下输出

E/AndroidRuntime(24199): java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.support.design.widget.BaseTransientBottomBar.getView()' on a null object reference

关于如何解决它或将可下载字体用作带 snackbar 的自定义字体有什么想法吗?

最佳答案

看起来您正在访问此行中的字段 (mSnackbar):

TextView textView = (mSnackbar.getView()).findViewById(android.support.design.R.id.snackbar_text);

但是您只是将 Snackbar 分配给局部变量。可能这就是问题所在?

关于android - 使用可下载字体作为自定义 Snackbar 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48386338/

相关文章:

android - ConstraintLayout 在 GUI 编辑器 Android Studio 3.0 - Canary 4 中不起作用

java - 想要使用 float 操作按钮将项目添加到 ViewPager2 中包含的特定 fragment 中的回收 View

android - RecyclerView 适配器显示错误的图像

android - 为什么ImageView的png图像中包含背景颜色?

安卓工作室 : Failed to find: 'com.android.support:support-v4:19.1.0'

android - 我可以以编程方式打开带有动画的抽屉布局吗?

android - 错误:未设置ANDROID_HOME,并且PATH中没有 “android”命令。您必须至少满足以下条件之一。

android - GLSURFACEVIEW 保存为 PNG - 错误 glReadPixels

Android Facebook SDK 3.0 无需显式登录即可简单更新状态?

Android 开发-创建棋盘游戏