ใช้ป้ายเพื่อแสดงองค์ประกอบภาพขนาดเล็กเพื่อระบุสถานะหรือค่าตัวเลขในคอมโพสิเบิลอื่น ตัวอย่างสถานการณ์ทั่วไปที่คุณอาจใช้ป้ายมีดังนี้
- การแจ้งเตือน: แสดงจำนวนการแจ้งเตือนที่ยังไม่อ่านบนไอคอนแอปหรือกระดิ่งการแจ้งเตือน
- ข้อความ: ระบุข้อความใหม่หรือข้อความที่ยังไม่อ่านภายในแอปพลิเคชันแชท
- การอัปเดตสถานะ: แสดงสถานะของงาน เช่น "เสร็จสมบูรณ์" "อยู่ระหว่างดำเนินการ" หรือ "ดำเนินการไม่สำเร็จ"
- จำนวนสินค้าในรถเข็น: แสดงจำนวนสินค้าในรถเข็นช็อปปิ้งของผู้ใช้
- เนื้อหาใหม่: ไฮไลต์เนื้อหาหรือฟีเจอร์ใหม่ที่พร้อมให้บริการแก่ผู้ใช้
แพลตฟอร์ม API
ใช้คอมโพสิชัน BadgedBox
เพื่อติดตั้งใช้งานป้ายในแอปพลิเคชัน ท้ายที่สุดแล้ว คอนเทนเนอร์ก็คือคอนเทนเนอร์ คุณควบคุมลักษณะที่ปรากฏได้ด้วยพารามิเตอร์หลัก 2 รายการต่อไปนี้
content
: เนื้อหาที่คอมโพสได้ซึ่งBadgedBox
มี โดยปกติแล้วIcon
badge
: คอมโพสิชันที่ปรากฏเป็นป้ายเหนือเนื้อหา โดยปกติแล้วจะเป็นคอมโพสิชันBadge
โดยเฉพาะ
ตัวอย่างพื้นฐาน
ข้อมูลโค้ดนี้แสดงการใช้งาน BadgedBox
ขั้นพื้นฐาน
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
ตัวอย่างนี้แสดงป้ายที่ซ้อนทับ Composable Icon
ที่ระบุ โปรดสังเกตสิ่งต่อไปนี้ในโค้ด
BadgedBox
ทำหน้าที่เป็นคอนเทนเนอร์โดยรวม- อาร์กิวเมนต์สําหรับพารามิเตอร์
badge
ของBadgedBox
คือBadge
เนื่องจากBadge
ไม่มีอาร์กิวเมนต์ของตัวเอง แอปจึงแสดงป้ายเริ่มต้น ซึ่งเป็นวงกลมสีแดงเล็กๆ Icon
ใช้เป็นอาร์กิวเมนต์สําหรับพารามิเตอร์content
ของBadgedBox
ซึ่งเป็นไอคอนที่แสดงป้าย ในกรณีนี้คือไอคอนอีเมล
ลักษณะที่ปรากฏมีดังนี้
ตัวอย่างโดยละเอียด
ข้อมูลโค้ดต่อไปนี้แสดงวิธีแสดงค่าในป้ายที่ตอบสนองต่อการดําเนินการของผู้ใช้
@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") } } }
ตัวอย่างนี้ใช้ไอคอนรถเข็นช็อปปิ้งที่มีป้ายที่แสดงจํานวนสินค้าในรถเข็นของผู้ใช้
BadgedBox
จะแสดงก็ต่อเมื่อจำนวนรายการมากกว่า 0- อาร์กิวเมนต์สําหรับ
containerColor
และcontentColor
จะควบคุมลักษณะที่ปรากฏของป้าย - คอมโพสิชัน
Text
สำหรับช่องเนื้อหาของBadge
จะปรากฏภายในป้าย ในกรณีนี้ ระบบจะแสดงจํานวนสินค้าในรถเข็น
การติดตั้งใช้งานนี้จะปรากฏดังนี้