即使将应用程序主题DayNight和setDefaultNightMode设置为MODE_NIGHT_YES,AlertDialog也不会变暗

时间:2020-10-21 13:15:53

标签: android themes android-alertdialog

我的应用仅处于黑暗状态(不取决于用户设置)。我无法使警报对话框变暗。 我的style.xml:

<style name="AppTheme" parent="ThemeOverlay.AppCompat.DayNight">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">#000000</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:navigationBarColor">#000000</item>

    <item name="dialogTheme">@style/Theme.MaterialComponents.DayNight.Dialog.Alert</item>

    <!-- disable action bar -->
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>


</style>

在我的活动中:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    setContentView(R.layout.activity_intro);
}

显示对话框回调的我的按钮:

private void onTouchButton() 
{

    new AlertDialog.Builder(this, R.style.Theme_AppCompat_DayNight_Dialog_Alert)
            .setTitle(getString(R.string.title))
            .setMessage(getString(R.string.text))
            .setPositiveButton(getString(R.string.button), null)
            .show();
}

据我了解,DayNight appCompat主题提供了一种简单的方法,可在...之间以暗/亮为主题进行切换

 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

但是,我不能使其适用于上面显示的基本代码。我错过了什么 ?我是Android新手。我正在使用AppCompat 1.2.0(也许它可以带来其他信息来解决问题)

0 个答案:

没有答案