Gunakan badge untuk menampilkan elemen visual kecil guna menunjukkan status atau nilai numerik pada composable lain. Berikut beberapa skenario umum saat Anda dapat menggunakan badge:
- Notifikasi: Menampilkan jumlah notifikasi yang belum dibaca di ikon aplikasi atau lonceng notifikasi.
- Pesan: Menunjukkan pesan baru atau belum dibaca dalam aplikasi chat.
- Pembaruan status: Menampilkan status tugas, seperti "selesai", "dalam proses", atau "gagal".
- Jumlah keranjang: Menampilkan jumlah item di keranjang belanja pengguna.
- Konten baru: Soroti konten atau fitur baru yang tersedia bagi pengguna.
Platform API
Gunakan composable BadgedBox untuk menerapkan badge di aplikasi Anda. Pada akhirnya, ini adalah penampung. Anda mengontrol tampilannya dengan dua parameter utama ini:
content: Konten composable yang terdapat dalamBadgedBox. BiasanyaIcon.badge: Composable yang muncul sebagai badge di atas konten. Biasanya composableBadgekhusus.
Contoh dasar
Cuplikan kode ini menunjukkan implementasi dasar BadgedBox:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
Contoh ini menampilkan badge yang tumpang-tindih dengan composable Icon yang diberikan. Perhatikan
hal berikut dalam kode:
BadgedBoxberfungsi sebagai container keseluruhan.- Argumen untuk parameter
badgedariBadgedBoxadalahBadge. KarenaBadgetidak memiliki argumennya sendiri, aplikasi akan menampilkan badge default, yaitu lingkaran merah kecil. Iconberfungsi sebagai argumen untuk parametercontentdariBadgedBox. Ikon ini adalah ikon tempat badge muncul. Dalam hal ini, ikonnya adalah ikon email.
Tampilannya seperti ini:
Contoh mendetail
Cuplikan berikut menunjukkan cara menampilkan nilai dalam badge yang merespons tindakan pengguna.
@Composable fun BadgeInteractiveExample() { var itemCount by remember { mutableIntStateOf(0) } Column( verticalArrangement = Arrangement.spacedBy(16.dp) ) { BadgedBox( badge = { if (itemCount > 0) { Badge( containerColor = Color.Red, contentColor = Color.White ) { Text("$itemCount") } } } ) { Icon( imageVector = Icons.Filled.ShoppingCart, contentDescription = "Shopping cart", ) } Button(onClick = { itemCount++ }) { Text("Add item") } } }
Contoh ini menerapkan ikon keranjang belanja dengan badge yang menampilkan jumlah item dalam keranjang pengguna.
BadgedBoxhanya ditampilkan jika jumlah item lebih dari 0.- Argumen untuk
containerColordancontentColormengontrol tampilan badge. - Composable
Textuntuk slot kontenBadgemuncul dalam badge. Dalam hal ini, jumlah item di keranjang akan ditampilkan.
Penerapan ini akan terlihat seperti berikut: