Sử dụng huy hiệu để hiển thị một phần tử trực quan nhỏ nhằm biểu thị trạng thái hoặc giá trị bằng số trên một thành phần kết hợp khác. Sau đây là một số trường hợp phổ biến mà bạn có thể sử dụng huy hiệu:
- Thông báo: Hiển thị số lượng thông báo chưa đọc trên biểu tượng ứng dụng hoặc chuông thông báo.
- Tin nhắn: Cho biết tin nhắn mới hoặc chưa đọc trong một ứng dụng trò chuyện.
- Thông tin cập nhật về trạng thái: Cho biết trạng thái của một việc cần làm, chẳng hạn như "đã hoàn thành", "đang tiến hành" hoặc "thất bại".
- Số lượng trong giỏ hàng: Hiển thị số lượng mặt hàng trong giỏ hàng của người dùng.
- Nội dung mới: Làm nổi bật nội dung hoặc tính năng mới mà người dùng có thể sử dụng.
Nền tảng API
Sử dụng thành phần kết hợp BadgedBox để triển khai huy hiệu trong ứng dụng của bạn. Đây là một vùng chứa. Bạn kiểm soát giao diện của nó bằng 2 tham số chính sau:
content: Nội dung có khả năng kết hợp màBadgedBoxchứa. Thường làIcon.badge: Thành phần kết hợp xuất hiện dưới dạng huy hiệu trên nội dung. Thông thường là thành phần kết hợpBadgechuyên dụng.
Ví dụ cơ bản
Đoạn mã này cho thấy cách triển khai cơ bản của BadgedBox:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
Ví dụ này cho thấy một huy hiệu chồng lên thành phần kết hợp Icon được cung cấp. Lưu ý những điều sau trong mã:
BadgedBoxđóng vai trò là vùng chứa tổng thể.- Đối số cho tham số
badgecủaBadgedBoxlàBadge. VìBadgekhông có đối số riêng, nên ứng dụng sẽ hiển thị huy hiệu mặc định (một vòng tròn nhỏ màu đỏ). Iconđóng vai trò là đối số cho tham sốcontentcủaBadgedBox. Đây là biểu tượng mà huy hiệu xuất hiện bên trên. Trong trường hợp này, đó là biểu tượng thư.
Đây là cách văn bản xuất hiện:
Ví dụ chi tiết
Đoạn mã sau đây minh hoạ cách bạn có thể hiển thị các giá trị trong huy hiệu để phản hồi các hành động của người dùng.
@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") } } }
Ví dụ này triển khai một biểu tượng giỏ hàng có huy hiệu hiển thị số lượng mặt hàng trong giỏ hàng của người dùng.
- Biểu tượng
BadgedBoxchỉ xuất hiện khi số lượng mặt hàng lớn hơn 0. - Các đối số cho
containerColorvàcontentColorkiểm soát hình thức của huy hiệu. - Thành phần kết hợp
Textcho khe nội dung củaBadgexuất hiện trong huy hiệu. Trong trường hợp này, số lượng mặt hàng trong giỏ hàng sẽ xuất hiện.
Phương thức triển khai có dạng như sau: