Изменение цвета строки состояния в Android с помощью Kotlin: полное руководство

Строка состояния в приложении Android предоставляет пользователям важную информацию, а также ее можно настроить в соответствии с общим дизайном вашего приложения. В этой статье блога мы рассмотрим различные способы изменения цвета строки состояния в Android с помощью Kotlin. Мы предоставим примеры кода и объясним каждый метод в простой и разговорной форме. Итак, приступим!

Метод 1. Использование представления «Декор окна».
Один простой способ изменить цвет строки состояния — открыть представление «Декор окна» и установить нужный цвет. Вот фрагмент кода, позволяющий добиться этого:

window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window.statusBarColor = getColor(R.color.statusBarColor)

Метод 2: использование контроллера вставок окон.
Начиная с Android 11 (уровень API 30), вы можете использовать контроллер вставок окон для динамического изменения внешнего вида строки состояния. Вот пример того, как изменить цвет строки состояния с помощью этого метода:

window.insetsController?.setSystemBarsAppearance(
    WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
    WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
)
window.statusBarColor = getColor(R.color.statusBarColor)

Метод 3. Использование базовой библиотеки AndroidX
Если вы используете базовую библиотеку AndroidX, вы можете использовать класс WindowCompatдля изменения цвета строки состояния. Вот пример:

WindowCompat.setDecorFitsSystemWindows(window, false)
WindowCompat.getInsetsController(window, window.decorView)?.apply {
    isAppearanceLightStatusBars = true
    setStatusBarColor(getColor(R.color.statusBarColor))
}

Метод 4. Создание собственной темы
Другой способ изменить цвет строки состояния — создать собственную тему в файле Styles.xml вашего приложения. Вот пример того, как определить собственную тему и применить ее к своей деятельности:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@color/statusBarColor</item>
    <!-- Other theme attributes -->
</style>

Затем примените эту тему к своей активности в файле AndroidManifest.xml:

<activity
    android:name=".MainActivity"
    android:theme="@style/AppTheme"
    <!-- Other activity attributes -->
/>

Изменение цвета строки состояния в приложении Android с помощью Kotlin — отличный способ улучшить общий вид вашего приложения. В этой статье мы рассмотрели различные методы достижения этой цели, в том числе использование представления декора окна, контроллера вставок окон, базовой библиотеки AndroidX и создание собственной темы. Следуя этим методам и используя предоставленные примеры кода, вы можете легко настроить цвет строки состояния в соответствии с дизайном вашего приложения.