gpt4 book ai didi

android - 如何使用支持库 26 在 AlertDialog 中设置自定义字体

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:01 25 4
gpt4 key购买 nike

我正在使用 Android Support Library 的修订版 26.0.1|在我的应用程序中设置自定义字体。在我的应用主题中,我添加了:

<item name="android:fontFamily">@font/my_font</item>

它就像一个魅力,将我整个应用程序中的文本转换为我的自定义字体。除了我的对话框 - 特别是它们的标题、消息以及它们的 NumberPickers。在那些地方,字体没有更新。 (单选按钮和复选框有效;是/否按钮也是如此)

是否有什么我忘记添加到我的主题或样式中的东西?还是支持库还不支持?

更多细节:我正在使用 AppCompatDialogFragment 来实现我所有的对话框。在他们的 onCreateDialog() 方法中,我使用 AlertDialog.Builder 创建了一个对话框,然后返回它。

感谢您的帮助!

最佳答案

谢谢所有回答的人,但不幸的是,这些解决方案都不适合我。我希望他们能为别人工作。

我断定这是支持库中的错误,希望 Google 能够修复。同时,我开发了这个 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);
}
}

这是通过扫描对话框的 View 树来根据支持库提供的标题和消息 View 来工作的。如果支持库要更改这些 ID,这将不再有效(这就是为什么它是 hacky 的原因)。希望 Google 解决了这个问题,我将不再需要这样做。

关于android - 如何使用支持库 26 在 AlertDialog 中设置自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com