Изменить DarkMode программно - PullRequest
0 голосов
/ 23 января 2020

Это мой стиль в attr_styles. xml

<style name="AttrStyles" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="calendarAppointmentView">@style/calendar_appointment_view</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="alertDialogTheme">@style/white_style</item>
</style>

И у меня есть 2 цвета. xml файлов. 1 в значениях, другое в значениях-ночь.

Если я выберу в настройках телефона DarkMode, он будет работать. НО я хочу иметь Spinner в своем приложении, чтобы иметь: AUTO, ON, OFF. Как заставить его отображать светлые цвета (значения) или темные цвета (значения-ночь) на основе этого счетчика?

Я пытался в своем классе App.kt (класс приложения) вызвать onCreate () это:

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

или

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

Но ничего не происходит. Что я делаю не так?

1 Ответ

0 голосов
/ 23 января 2020

После поиска вашего вопроса в течение примерно 2 минут я наткнулся на похожий вопрос, который в значительной степени содержит ответ , который вы ищете . Похоже, вы должны использовать метод setTheme.

...