yuv*_*val 14 fonts android android-fonts android-support-library android-8.0-oreo
我正在使用Android支持库的修订版26.0.1 在我的应用程序中设置自定义字体.在我的应用主题中,我补充说:
<item name="android:fontFamily">@font/my_font</item>
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力,将我整个应用程序中的文本转换为我的自定义字体.除了我的对话 - 特别是他们的标题,消息,以及他们的NumberPickers.在那些地方,字体没有更新.(单选按钮和复选框工作;是/否按钮也是如此)
有什么我忘记添加到我的主题或风格?或者支持库是否支持这个?
更多细节:我AppCompatDialogFragment用来实现我的所有对话框.在他们的onCreateDialog()方法中,我创建一个对话框AlertDialog.Builder然后返回它.
谢谢您的帮助!
谢谢所有回答的人,但遗憾的是这些解决方案都不适合我.我希望他们能为别人工作.
我已经得出结论,这是支持库中的一个错误,希望谷歌能够修复.与此同时,我开发了这个hacky解决方法:
public static void applyCustomFontToDialog(Context context, Dialog dialog) {
Typeface font = ResourcesCompat.getFont(context, R.font.my_font);
if (font != null) {
TextView titleView = dialog.findViewById(android.support.v7.appcompat.R.id.alertTitle);
TextView messageView = dialog.findViewById(android.R.id.message);
if (titleView != null) titleView.setTypeface(font, Typeface.BOLD);
if (messageView != null) messageView.setTypeface(font);
}
}
Run Code Online (Sandbox Code Playgroud)
这通过按照支持库为其提供的ID扫描对话框的视图树以查找标题和消息视图.如果支持库要更改这些ID,这将不再有效(这就是为什么它是hacky).希望Google修复此问题,我不再需要这样做了.
| 归档时间: |
|
| 查看次数: |
1866 次 |
| 最近记录: |