В Android Pie добавлена возможность переключения светлой / темной темы в меню «Настройки» -> «Дисплей» -> «Тема устройства».
Я хочу, чтобы мое приложение применило правильную тему в соответствии с темой устройства, установленной в устройстве.настройки.
В соответствии с руководством для Android Styles and Themes, для темного режима приложение должно использовать тему, которая расширяет Theme.AppCompat
, а для светлого режима приложение должно использовать тему, которая расширяетTheme.AppCompat.Light
.
Итак, я создал две темы в своем приложении:
<style name="AppTheme.Dark" parent="Theme.AppCompat">
...
</style>
<style name="AppTheme.Light" parent="Theme.AppCompat.Light">
...
</style>
Однако в AndroidManifest.xml
, когда я объявляю приложение с тегом <application>
, я могу указать только одну темув атрибуте android:theme
:
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme.Light"
tools:replace="android:name">
Как объявить мое приложение в AndroidManifest.xml
до динамически , выбрать @style/AppTheme.Light
или @style/AppTheme.Dark
в соответствии с темой устройства, установленной внастройки устройства?