Zmiana koloru paska stanu w Jetpack Compose
Każdy rozwiązany problem jest lekcją. #AndroidTips #RozwiązanyProblemDzisiaj
Zmiana koloru paska stanu jest częstym zadaniem podczas projektowania aplikacji na Androida. Dzięki Jetpack Compose jest to prosty proces, który można wykonać w zaledwie kilku wierszach kodu.
Aby zmienić kolor paska stanu w Jetpack Compose, możemy skorzystać z SystemUiController
dostarczonego przez androidx.compose.ui.platform
pakiet.
Najpierw potrzebujemy accompanist-systemuicontroller. Dodaj zależność do pliku build.gradle Twojej aplikacji:
dependencies {
implementation "com.google.accompanist:accompanist-systemuicontroller:x.y.z"
}
Musimy stworzyć komponowalną funkcję, która ustawi kolor paska stanu (utwórz klasę SetStatusBarColor.kt ). Oto przykład:
@Composable
fun SetStatusBarColor(color: Color) {
val systemUiController = rememberSystemUiController()
SideEffect {
systemUiController.setSystemBarsColor(color)
}
}
Następnie możemy wywołać tę funkcję w naszej głównej @Composable
funkcji w MainActivity , tak jak poniżej:
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()
}
}
}
}
}
I to wszystko! Za pomocą zaledwie kilku linii kodu możemy łatwo zmienić kolor paska stanu w naszej aplikacji na Androida opartej na Jetpack Compose.
Używanie SystemUiController
nie ogranicza się tylko do zmiany koloru paska stanu, ale może być również używane do innych konfiguracji interfejsu użytkownika systemu, takich jak pasek nawigacyjny, tryb immersyjny i nie tylko.
Mam aplikację sampel używającą komponowania jetpack w moim repozytorium github.com/im-o .
Gotowe i odkurzone, dziękuję!