夜间模式无法正常工作-为什么?

时间:2020-02-20 11:02:31

标签: android android-night-mode

我已使用偏好屏幕将暗模式应用为:

> dt
    foo bar val   stuff   things
 1:   a   K 100 a_stuff things_a
 2:   b   L 101 b_stuff things_b
 3:   c   M 102 c_stuff things_c
 4:   d   N 103 d_stuff things_d
 5:   e   O 104 e_stuff things_e
 6:   f   P 105 f_stuff things_f
 7:   g   Q 106 g_stuff things_g
 8:   h   R 107 h_stuff things_h
 9:   i   S 108 i_stuff things_i
10:   j   T 109 j_stuff things_j

和数组定义为

  <ListPreference
        app:defaultValue="default"
        app:entries="@array/themes_labels"
        app:entryValues="@array/themes_color"
        app:key="theme"
        app:title="@string/Theme"
        app:useSimpleSummaryProvider="true"/>
  </PreferenceCategory>

现在,在<resources> <array name="themes_labels"> <item>"Default"</item> <item>"Light"</item> <item>"Dark"</item> </array> <string-array name="themes_color"> <item>"Default"</item> <item>"Light"</item> <item>"Dark"</item> </string-array> </resources> 的onCreate中,我要将主题更改为:

MainActivity

现在,问题是使用 @Override protected void onCreate(Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM); } else { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY); } SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); // AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); String theme = sharedPref.getString("theme", "Default"); // Toast.makeText(this, theme, Toast.LENGTH_LONG).show(); if (theme.equals("Dark")) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } else if (theme.equals("Light")) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM); } else { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY); } } 或Default(即使Lightdefault,就像打开了省电功能一样),一切都很好。但是,如果选择了黑暗模式,那么我将面临许多问题,例如未应用在片段中,甚至在某些情况下会导致崩溃。

我对android很陌生,不明白为什么会这样。请帮助。

要求尝试解决此问题的here

0 个答案:

没有答案