Изменение цвета строки состояния в Jetpack Compose
Каждая решенная проблема — это усвоенный урок. #AndroidTips #решеннаяпроблемасегодня
Изменение цвета строки состояния — распространенная задача при разработке приложений для Android. С Jetpack Compose это простой процесс, который можно выполнить всего несколькими строками кода.

Чтобы изменить цвет строки состояния в Jetpack Compose, мы можем использовать SystemUiController
предоставленный пакетом androidx.compose.ui.platform
.
Во-первых, нам нужен accompanist-systemuicontroller. Добавьте зависимость в файл build.gradle вашего приложения:
dependencies {
implementation "com.google.accompanist:accompanist-systemuicontroller:x.y.z"
}
Нам нужно создать компонуемую функцию, которая будет устанавливать цвет строки состояния (создайте класс SetStatusBarColor.kt ). Вот пример:
@Composable
fun SetStatusBarColor(color: Color) {
val systemUiController = rememberSystemUiController()
SideEffect {
systemUiController.setSystemBarsColor(color)
}
}
Затем мы можем вызвать эту функцию в нашей основной @Composable
функции в MainActivity , например:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
YourAppNameTheme {
StatusBarColor(color = MaterialTheme.colors.primary)
// Other content here, example :
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
YourAppClass()
}
}
}
}
}
Вот и все! С помощью всего нескольких строк кода мы можем легко изменить цвет строки состояния в нашем приложении для Android на основе Jetpack Compose.
Использование SystemUiController
не ограничивается только изменением цвета строки состояния, его можно использовать и для других конфигураций пользовательского интерфейса системы, таких как панель навигации, иммерсивный режим и многое другое.
В моем репозитории github.com/im-o есть приложение sampel, использующее компоновку джетпака .
Сделано и почищено, спасибо!