Używaj plakietki do wyświetlania małego elementu wizualnego wskazującego status lub wartość liczbową innego elementu kompozycyjnego. Oto kilka typowych scenariuszy, w których możesz używać plakietki:
- Powiadomienia: na ikonie aplikacji wyświetla liczbę nieprzeczytanych powiadomień. lub dzwonek powiadomień.
- Wiadomości: oznaczaj nowe lub nieprzeczytane wiadomości w aplikacji do obsługi czatu.
- Aktualizacje stanu: pokazuj stan zadania, np. „ukończone”, "w postępu”, czy „niepowodzenie”.
- Liczba produktów w koszyku: wyświetla liczbę produktów w koszyku użytkownika.
- Nowe treści: wyróżnij nowe treści lub funkcje dostępne dla użytkowników.
Interfejs API
Aby wdrożyć plakietki w aplikacji, użyj funkcji kompozycyjnej BadgedBox
. it
w ostatecznym rozrachunku – i to w końcu. Możesz kontrolować jego wygląd za pomocą
parametry:
content
: treść kompozycyjna zawarta w elemencieBadgedBox
. ZwykleIcon
badge
: element kompozycyjny wyświetlany jako plakietka na treści. Zwykle jest to dedykowana funkcja kompozycyjnaBadge
.
Podstawowy przykład
Ten fragment kodu przedstawia podstawową implementację elementu BadgedBox
:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
W tym przykładzie wyświetla się plakietka, która nakłada się na podany element kompozycyjny Icon
. Notatka
następujące elementy w kodzie:
BadgedBox
to ogólny kontener.- Argument parametru
badge
wBadgedBox
toBadge
. FunkcjaBadge
nie ma własnych argumentów, więc aplikacja wyświetla wartość domyślną czyli małe czerwone kółko. Icon
jest argumentem parametrucontent
w tabeliBadgedBox
. it to ikona, nad którą wyświetla się plakietka. W tym przypadku jest to ikona poczty.
Wygląda to tak:
.Szczegółowy przykład
Ten fragment kodu pokazuje, jak wyświetlić na plakietce wartości, które reagowanie na działania użytkownika.
@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") } } }
W tym przykładzie zastosowano ikonę koszyka z plakietką liczby produktów w koszyku użytkownika.
BadgedBox
wyświetla się tylko wtedy, gdy liczba elementów przekracza 0.- Argumenty funkcji
containerColor
icontentColor
określają wygląd. logo. - Element
Text
kompozycyjny dla boksu treściBadge
pojawia się w: logo. W takim przypadku wyświetla się liczba produktów w koszyku.
Implementacja wygląda tak: