2016-03-04 4 views
0

В моем приложении я попытался изменить тему (светло-темную) с помощью uiModeManager.setNightMode(UiModeManager.MODE_NIGHT_YES).
Он отлично работает на моем Nexus 5 с Android 6 и на эмуляторе с Android 6, но он не работает на эмуляторе с Android 5.1.
Почему?Theme.AppCompat.DayNight не работает на Android Lollipop

Я также попытался с AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);, но на Android 6 это изменить только тему меню (?) И на Android 5 не работает в любом случае ..

Я не думаю, что это проблема темы , но это мой код:

<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:statusBarColor">@color/colorPrimaryDark</item> 
</style> 
+0

В моих тестах я узнал, что он работает для версий Release, но не для отладочных сборников. Может быть, это немного багги. – Francesc

+0

Mh .. Нет .. Я подписал и создаю apk release, но не работает на Lollipop. Вы используете 'uiModeManager.setNightMode (UiModeManager.MODE_NIGHT_YES)'? –

+0

Я использую это, исходя из моего общего значения предпочтений (это в моем методе Application onCreate): AppCompatDelegate.setDefaultNightMode (тема == Constants.THEME_LIGHT? AppCompatDelegate.MODE_NIGHT_NO: theme == Constants.THEME_DARK? AppCompatDelegate.MODE_NIGHT_YES: AppCompatDelegate. MODE_NIGHT_AUTO); – Francesc

ответ

1

Использование

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); 

в OnCreate метод приложения.

Смежные вопросы