AlertDialog使用什么主题来与日/夜主题自动调整颜色

时间:2018-08-17 19:26:36

标签: android themes alertdialog

如果应用程序名为AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);,则该应用程序将显示深色主题;否则,该应用程序将显示为浅色主题。

具有AlertDialog.Builder(this),并且想要应用一个主题,以便在MODE_NIGHT中它显示带有深色主题的对话框,否则,该对话框显示带有浅色主题的对话框,如下所示(但是此android.R.style.Theme_Material_Dialog将使对话框始终处于深色主题)

AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog)

AlertDialog是否有一个主题?还是必须定义两个主题并检查模式,然后分别使用该主题编码?

2 个答案:

答案 0 :(得分:3)

styles.xml

中定义警报对话框
<style name="MyDialogStyle" parent="Theme.AppCompat.DayNight.Dialog.Alert"/>

在您的代码中

AlertDialog.Builder(this, R.style.MyDialogStyle)

尝试一下!

答案 1 :(得分:0)

添加到您的主题样式:

        <item name="alertDialogTheme">@style/Theme.AppCompat.DayNight.Dialog.Alert</item>
        <item name="android:alertDialogTheme">@style/Theme.AppCompat.DayNight.Dialog.Alert</item>

使用appcompat中的对话框

import androidx.appcompat.app.AlertDialog;

AlertDialog alertDialog = new AlertDialog.Builder(context).create()