Mengubah Warna Bilah Status di Jetpack Compose

May 08 2023
Setiap masalah yang dipecahkan adalah pelajaran yang dipetik. #AndroidTips #SolvedProblemToday Mengubah warna bilah status adalah tugas umum saat mendesain aplikasi Android.

Setiap masalah yang dipecahkan adalah pelajaran yang dipetik. #AndroidTips #SolvedProblemToday

Komposisi Jetpack

Mengubah warna bilah status adalah tugas umum saat mendesain aplikasi Android. Dengan Jetpack Compose, ini adalah proses sederhana yang dapat dilakukan hanya dalam beberapa baris kode.

Mengubah Warna Bilah Status di Jetpack Compose

Untuk mengubah warna bilah status di Jetpack Compose, kita dapat menggunakan yang SystemUiControllerdisediakan oleh androidx.compose.ui.platformpaket.

Pertama, kita membutuhkan pengiring-systemuicontroller, Tambahkan dependensi ke file build.gradle aplikasi Anda:

dependencies {
    implementation "com.google.accompanist:accompanist-systemuicontroller:x.y.z"
}

Kita perlu membuat fungsi yang dapat disusun yang akan menyetel warna bilah status (membuat kelas SetStatusBarColor.kt ). Berikut contohnya:

@Composable
fun SetStatusBarColor(color: Color) {
    val systemUiController = rememberSystemUiController()
    SideEffect {
        systemUiController.setSystemBarsColor(color)
    }
}

Selanjutnya, kita dapat memanggil fungsi ini di @Composablefungsi utama kita di MainActivity , seperti ini:

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()
                }
            }
        }
    }
}

Dan itu saja! Hanya dengan beberapa baris kode, kita dapat dengan mudah mengubah warna bilah status di aplikasi Android berbasis Jetpack Compose.

Penggunaannya SystemUiControllertidak hanya terbatas pada mengubah warna bilah status, tetapi juga dapat digunakan untuk konfigurasi UI sistem lainnya, seperti bilah navigasi, mode imersif, dan lainnya.

Saya memiliki aplikasi sampel menggunakan penulisan jetpack di repositori saya github.com/im-o .

Selesai dan dibersihkan, terima kasih!