Durumu belirtmek üzere küçük bir görsel öğe göstermek için rozet kullanın veya başka bir composable'da sayısal bir değer olabilir. Proje yöneticilerinin şu rozetleri kullanabilirsiniz:
- Bildirimler: Okunmamış bildirimlerin sayısını uygulama simgesinde görüntüleyin veya bildirim zilini devre dışı bırakın.
- Mesajlar: Bir sohbet uygulamasındaki yeni veya okunmamış mesajları belirtin.
- Durum güncellemeleri: Görevlerin "tamamlandı", "içinde ilerleme," veya "başarısız" oldu.
- Alışveriş sepeti miktarı: Bir kullanıcının alışveriş sepetindeki öğe sayısını gösterir.
- Yeni içerik: Kullanıcıya sunulan yeni içeriği veya özellikleri öne çıkarın.
API yüzeyi
Uygulamanızda rozetleri uygulamak için BadgedBox
composable'ı kullanın. Google
en nihayetinde bir kapsayıcı. Görünümünü şu iki ana unsurla kontrol edersiniz:
parametre:
content
:BadgedBox
öğesinin içerdiği composable içerik. Normal şartlardaIcon
badge
: İçeriğin üzerinde rozet olarak görünen composable. Genellikle özelBadge
composable'dır.
Temel örnek
Bu kod snippet'i, BadgedBox
temel uygulamasını gösterir:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
Bu örnekte, sağlanan Icon
composable ile çakışan bir rozet gösterilmektedir. Not
kodda şunu görürsünüz:
BadgedBox
, genel kapsayıcı görevi görür.BadgedBox
öğesininbadge
parametresi için bağımsız değişkenBadge
.Badge
kendi bağımsız değişkenine sahip olmadığından uygulama, varsayılan değeri görüntüler küçük kırmızı bir daire olan küçük kırmızı bir dairedir.Icon
,BadgedBox
öğesinincontent
parametresinin bağımsız değişkeni olarak kullanılır. Google rozetin üzerinde göründüğü simgedir. Bu durumda, bu bir posta simgesidir.
Şu şekilde görünür:
ziyaret edin.Ayrıntılı örnek
Aşağıdaki snippet'te, ilgi alanına giren kullanıcıların rozetinde yanıt verebilir.
@Composable fun BadgeInteractiveExample() { var itemCount by remember { mutableStateOf(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") } } }
Bu örnekte, Kullanıcının sepetindeki öğe sayısı.
BadgedBox
yalnızca öğe sayısı 0'ın üzerinde olduğunda görüntülenir.containerColor
vecontentColor
için bağımsız değişkenler görünümü kontrol eder önemli bir rol oynar.Badge
adlı içerik alanı içinText
composable şu konumda görünür: sahip olmanız gerekir. Bu örnekte, alışveriş sepetindeki öğelerin sayısı gösterilir.
Bu uygulama aşağıdaki gibi görünür: