Zmiana koloru paska stanu w Jetpack Compose

May 08 2023
Każdy rozwiązany problem jest lekcją. #AndroidTips #SolvedProblemToday Zmiana koloru paska stanu jest częstym zadaniem podczas projektowania aplikacji na Androida.

Każdy rozwiązany problem jest lekcją. #AndroidTips #RozwiązanyProblemDzisiaj

komponowanie plecaka odrzutowego

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.

Zmiana koloru paska stanu w Jetpack Compose

Aby zmienić kolor paska stanu w Jetpack Compose, możemy skorzystać z SystemUiControllerdostarczonego przez androidx.compose.ui.platformpakiet.

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 @Composablefunkcji 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 SystemUiControllernie 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ę!