AlertDialog的自定义主题没有被应用。

问题描述 投票:0回答:1

AlertDialogs的通用样式设置在 themes.xml

<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="alertDialogTheme">@style/ThemeOverlay.AlertDialog</item>
</style>

还有 ThemeOverlay.AlertDialog 看起来像这样。

<style name="ThemeOverlay.AlertDialog" parent="ThemeOverlay.AppCompat.Dialog.Alert">
    ...
    <item name="buttonStyle">@style/AlertDialogButton</item>
    ...
</style>

但是对于应用程序中的一个特定对话框,我需要使用不同的 buttonStyle (textColor)。为此,我创建了一个以普通样式为父体的样式。

<style name="NewAlertButtonStyle" parent="ThemeOverlay.AlertDialog">
    <item name="buttonStyle">@style/AlertDialogButtonRed</item>
</style>

然后 AlertDialogButtonRed 的样子。

<style name="AlertDialogButtonRed" parent="Widget.AppCompat.Button">
    <item name="android:textColor">@color/red</item>
</style>

而这是在创建对话框时设置的。

AlertDialog.Builder(ContextThemeWrapper(context, R.style.NewAlertButtonStyle))
                .setTitle(getString(R.string.dialog_title))
                .setMessage(getString(R.dialog_body))
                .setPositiveButton(R.string.ok) { _, _ ->
                    //doing something here
                }.show()

但样式似乎没有被应用,按钮的文字颜色不是红色的。我缺少什么?

android styles android-alertdialog android-dialog app-themes
1个回答
0
投票

只要设置 R.style.NewAlertButtonStyleContextThemeWrapper

© www.soinside.com 2019 - 2024. All rights reserved.