Huy hiệu

Sử dụng huy hiệu để hiển thị một phần tử hình ảnh nhỏ nhằm biểu thị trạng thái hoặc giá trị số trên một thành phần kết hợp khác. Dưới đâ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 tin nhắn chưa đọc trong một ứng dụng trò chuyện.
  • Thông tin cập nhật trạng thái: Hiển thị trạng thái của một nhiệm vụ, chẳng hạn như "hoàn thành", "đang tiến hành" hoặc "không thành công".
  • Số lượng giỏ hàng: Cho biết 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.
Ví dụ khác về thành phần huy hiệu.
Hình 1. Ví dụ về huy hiệu

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. Về cơ bản, nó sẽ là một vùng chứa. Bạn kiểm soát giao diện của nó bằng hai tham số chính sau:

  • content: Nội dung thành phần kết hợp mà BadgedBox chứ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 là thành phần kết hợp Badge dành riê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 chéo với thành phần kết hợp Icon đã cung cấp. Hãy 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ố badge của BadgedBoxBadge. Vì Badge không có đối số riêng, nên ứng dụng sẽ hiện huy hiệu mặc định, là một vòng tròn nhỏ màu đỏ.
  • Icon đóng vai trò là đối số cho tham số content của BadgedBox. Đây là biểu tượng mà huy hiệu xuất hiện trên đó. Trong trường hợp này, đó là biểu tượng thư.

Đây là cách mã xuất hiện:

Một huy hiệu đơn giản không chứa nội dung.
Hình 2. Việc triển khai huy hiệu ở mức tối thiểu.

Ví dụ chi tiết

Đoạn mã sau đây minh hoạ cách bạn có thể cho thấy các giá trị trong huy hiệu phản hồi hành động của người dùng.

@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")
        }
    }
}

Ví dụ này triển khai biểu tượng giỏ hàng với một huy hiệu hiển thị số lượng mặt hàng trong giỏ hàng của người dùng.

  • BadgedBox chỉ xuất hiện khi số lượng mặt hàng lớn hơn 0.
  • Các đối số cho containerColorcontentColor kiểm soát hình thức của huy hiệu.
  • Thành phần kết hợp Text cho vị trí nội dung của Badge xuất hiện trong huy hiệu. Trong trường hợp này, giá trị này sẽ cho thấy số lượng mặt hàng trong giỏ hàng.

Phương thức triển khai có dạng như sau:

Triển khai huy hiệu chứa số lượng mặt hàng trong giỏ hàng.
Hình 3. Huy hiệu hiển thị số lượng mặt hàng trong giỏ hàng.

Tài nguyên khác