Тема приложения не загружается правильно, если она отличается от системной темы - PullRequest
0 голосов
/ 20 апреля 2020

У меня проблема с тем, что в моем приложении есть две темы. Темная тема и Светлая тема

Проблема в том, что тема приложения загружается неправильно, если я устанавливаю тему приложения, отличную от темы системы.

Светлая тема наследуется от:

<style name="Theme.Light" parent="Theme.MaterialComponents.Light.NoActionBar">

, а Темная тема наследуется от:

<style name="Theme.Dark" parent="Theme.MaterialComponents.NoActionBar">

например, если системная тема светлая, а тема приложения использует Темная тема, которая наследуется от «Theme.MaterialComponents.NoActionBar», тогда тема не будет отображаться правильно, и наоборот.

Я использую каталог values-night, который содержит все цвета, используемые в темной теме.

1 Ответ

0 голосов
/ 20 апреля 2020

I Исправлена ​​проблема, когда приложение переключало режимы тем в зависимости от темы приложения.

fun setTheme(){
        if(getThemeRes() == R.style.Theme_Dark){
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
        }
        else{
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
        }
    }

Функция, которая возвращает целочисленный ресурс, содержащий текущую тему.

fun getThemeRes() = packageManager.getPackageInfo(
        packageName,
        PackageManager.GET_META_DATA
    ).applicationInfo.theme
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...