如何在每项活动中使黑暗模式

时间:2019-08-08 22:39:00

标签: java android android-studio

当我单击夜间模式按钮时,它仅适用于设置活动,而其他活动不是夜间模式。

This is xml
<Switch
        android:id="@+id/switch_button"
        android:layout_marginStart="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/night"/>

This is SettingsActivity
Switch aSwitch = findViewById(R.id.switch_button);
    aSwitch.setOnCheckedChangeListener((compoundButton, isChecked) -> {
        if (isChecked) {
            getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
        }
        else
        {
            getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
        }
    });

当我关闭应用程序并再次打开时,夜间模式也不会保存。该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试一下:

  1. 确保活动扩展了AppCompatActivity。

  2. 您的主题必须使用Theme.AppCompat.DayNight,因此您应将主主题或AppTheme设置为DayNight:

    <style name="AppTheme" parent="Theme.AppCompat.DayNight">
    
  3. 在AndroidManifest中将“活动”的主题设置为:

    android:theme="@style/AppTheme"
    

或使用Theme.AppCompat.DayNight的任何主题