привет, у меня есть тема, которую пользователь может выбрать светлый или темный, все работает нормально, но есть 2 проблемы:
1.При открытии приложения [в темной / светлой теме], сначала отображается белая страница, затем приложение использует темную тему
2.При смене темы сначала появляется черный экран
Я пытался изменить фон, но не работал, я изменил его цвет, а также яИспользуется рисованная форма.В любом случае, он не работает и использует один цвет для обоих
style.xml
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"/>
values / themes.xml
<style name="Theme.MaterialComponents.DayNight.NoActionBar"
parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@drawable/window_background</item>
</style>
values-night / themes.xml
<style name="Theme.MaterialComponents.DayNight.NoActionBar"
parent="Theme.MaterialComponents.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/TabBackground</item>
<item name="colorAccent">@color/green_inactive</item>
<item name="android:windowBackground">@drawable/window_background_dark</item>
</style>
windows_background
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#64b5f6"/>
</shape>
windows_background_dark
Подобно приведенному выше коду, только цвет отличается
и вот как я загружаю тему
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Prefs.getIsDarkMode(getApplicationContext()))
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
else
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
setContentView(R.layout.activity_main);
}