警报对话框主题不会从活动主题继承`windowBackground`

时间:2019-08-05 22:48:30

标签: android

在我的应用中,我在styles.xml中有这个主题

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">#000000</item>
    <item name="colorAccent">@color/neon_green</item>
    <item name="android:windowBackground">@color/black_17</item>
</style>

但是属性windowBackground不会导致对话框背景改变。对话框背景颜色仍然是白色。 neon_green高亮色确实出现在对话框文本中。

仅背景颜色不变。

AlertDialog.Builder builder = 
        new AlertDialog.Builder(new ContextThemeWrapper(act, R.style.AppTheme));
builder.setMessage("text")
        .setPositiveButton("pos ", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // FIRE ZE MISSILES!
            }
        })
        .setNegativeButton("neg", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // User cancelled the dialog
            }
        });
builder.create().show();

1 个答案:

答案 0 :(得分:0)

我刚刚将其添加到我的样式中

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:background">@color/black_17</item>
</style>

然后我将样式传递给生成器

AlertDialog.Builder builder =
                new AlertDialog.Builder(act,
                           R.style.AppCompatAlertDialogStyle);