我有一个简单的警告对话框显示在我的应用程序中,我想设置标题和消息文本的自定义字体,即使我通过添加FontFamily属性来设置样式.它不会影响消息文本(标题以某种方式获得了正确的字体)

到目前为止,我try 的内容如下:

上下文主题包装器

Context context = new 上下文主题包装器(context, R.style.NetworkAlertDialog风格);`

AlertDialog.Builder builder = new AlertDialog.Builder(context);

风格

<style name="NetworkAlertDialog风格" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:textView风格">@style/MyTextView风格</item>
    </style>

<style name="MyTextView风格" parent="android:Widget.TextView">
    <item name="android:fontFamily">@font/baloo2_bold</item>
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">@color/black</item>
</style>

将样式传递给AlertDialog构建器的构造函数

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.NetworkAlertDialog风格);


<style name="NetworkAlertDialog风格" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="colorAccent">@color/colorPrimary</item>
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:fontFamily">@font/baloo2_regular</item>
</style>

推荐答案

Try This

<style name="AlertDialogTheme" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
        <item name="android:windowBackground">@color/white</item>
        <item name="colorSurface">@color/white</item>
        <item name="android:layout_gravity">center</item>
        <item name="materialAlertDialogTitleTextStyle">@style/TitleTextStyle</item>
        <item name="materialAlertDialogBodyTextStyle">@style/BodyTextStyle</item>
        <item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle1</item>
        <item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle1</item>
        <item name="android:colorControlHighlight">@color/tool_icon_press</item>
    </style>
    <style name="TitleTextStyle" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textColor">@color/text_color</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
        <item name="android:textSize">@dimen/_14sdp</item>
    </style>
    <style name="BodyTextStyle" parent="MaterialAlertDialog.MaterialComponents.Body.Text">
        <item name="android:textColor">@color/text_color</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
    </style>
    <style name="PositiveButtonStyle1" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="android:textColor">@color/text_color</item>
        <item name="rippleColor">@color/tool_icon_press</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>

    </style>
    <style name="NegativeButtonStyle1" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
        <item name="android:textColor">@color/text_color</item>
        <item name="rippleColor">@color/tool_icon_press</item>
        <item name="android:fontFamily">@font/inter_semi_bold</item>
    </style>

像这样使用

new Dialog(context, R.style.AlertDialogTheme)

Android相关问答推荐

未解析的引用:背景 colored颜色

为什么R8不混淆某些类?

滑动以更改合成中的活动

如何让用户与我的应用生成的多个音频文件交互

如何在Reaction Native中显示Google Map iFrame?

在不增加父行宽度的情况下添加延迟行或可滚动行

在以XML格式设置完整屏幕视图时可见App Compat按钮

属性可选的涟漪效果ItemBackEarth Borderless不适用于Android 13和更高版本

如何使用进度条和返回函数进行API调用,同时在Android上使用Kotlin保持高效?

ERR_SSL_VERSION_OR_CIPHER_MISMATCH - Android Webview

Hilt+Worker NoSuchMethodException:<;init>;[class android.content.Context,class androidx.work.WorkerParameters]

使用 async 向网络发出并行请求并在supervisorScope中处理它们

Android 不在后台更新位置

如何从 firebase 实时数据库中检索最后一个值

如何在 Jetpack Compose 中的特定位置绘制图像

用作输入参数的 Lambda 函数导致重组

如何在 Jetpack Compose 中添加多个标签

在android studio中使用wifi配对设备的问题

可扩展性 Qt 5.15 Android

在 Android Studio 中保存数据