Gunakan badge untuk menampilkan elemen visual kecil yang menunjukkan status atau nilai numerik pada composable lain. Berikut beberapa skenario umum saat Anda mungkin menggunakan badge:
- Notifikasi: Menampilkan jumlah notifikasi yang belum dibaca di ikon aplikasi atau lonceng notifikasi.
- Pesan: Menunjukkan pesan baru atau yang belum dibaca dalam aplikasi chat.
- Pembaruan status: Menampilkan status tugas, seperti "selesai", "sedang berlangsung", atau "gagal".
- Jumlah keranjang: Menampilkan jumlah item di keranjang belanja pengguna.
- Konten baru: Soroti konten atau fitur baru yang tersedia untuk pengguna.
Platform API
Gunakan composable BadgedBox untuk menerapkan badge di aplikasi Anda. Pada dasarnya, ini adalah container. Anda dapat 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( painter = rememberVectorPainter(AppIcons.Mail), contentDescription = "Email" ) } }
Contoh ini menampilkan badge yang tumpang-tindih dengan composable Icon yang disediakan. Perhatikan
hal berikut dalam kode:
BadgedBoxberfungsi sebagai penampung keseluruhan.- Argumen untuk parameter
badgedariBadgedBoxadalahBadge. KarenaBadgetidak memiliki argumennya sendiri, aplikasi akan menampilkan badge default, yang berupa lingkaran merah kecil. Iconberfungsi sebagai argumen untuk parametercontentdariBadgedBox. Ikon ini adalah ikon tempat badge muncul. Dalam hal ini, ikonnya adalah ikon email.
Berikut tampilannya:
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( painter = rememberVectorPainter(AppIcons.ShoppingCart), contentDescription = "Shopping cart", ) } Button(onClick = { itemCount++ }) { Text("Add item") } } }
Contoh ini mengimplementasikan ikon keranjang belanja dengan badge yang menampilkan jumlah item di keranjang pengguna.
BadgedBoxhanya ditampilkan jika jumlah item lebih dari 0.- Argumen untuk
containerColordancontentColormengontrol tampilan badge. - Composable
Textuntuk slot kontenBadgemuncul di dalam badge. Dalam hal ini, ikon tersebut menampilkan jumlah item di keranjang.
Implementasi ini akan terlihat seperti berikut: