Работал ли с настройкой темы

«Работал ли с настройкой темы» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. На Android можно настраивать тему через styles.xml и themes.xml.

Пример:

<!-- styles.xml -->
<style name="AppTheme" parent="Theme.Material3.DayNight">
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorOnPrimary">@color/white</item>
</style>

Нюансы:

  • Day/Night темы – можно использовать Theme.Material3.DayNight и переопределять цвета в res/values-night.
  • Динамические цвета (Android 12+) – Material You (Theme.Material3.DynamicColors).
  • Кастомные атрибуты – для сложных тем можно создавать свои атрибуты в attrs.xml.

Применение в манифесте:

<application android:theme="@style/AppTheme" ... />

Для программного изменения темы (например, переключение светлой/тёмной):

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)