Ответ
Для организации темы в Android приложении используйте Theme.AppCompat (или Theme.MaterialComponents для MD3) в styles.xml. Основные подходы:
- Базовые стили – определите родительскую тему в
res/values/styles.xml:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="colorPrimary">@color/purple_500</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSecondary">@color/teal_200</item>
</style>
- Ночная тема – добавьте альтернативы в
res/values-night/:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.Dark">
<item name="colorPrimary">@color/purple_200</item>
</style>
- Динамическое переключение (Kotlin):
AppCompatDelegate.setDefaultNightMode(
if (isDark) MODE_NIGHT_YES else MODE_NIGHT_NO
)
Ключевые атрибуты:
colorPrimary– основной брендовый цветcolorSurface– фон компонентовtextColor– цвет текста
Для кастомизации используйте ThemeOverlay для отдельных элементов. Все цвета должны быть определены в colors.xml с day/night вариантами.