คอมโพเนนต์ Chip
เป็นองค์ประกอบ UI แบบอินเทอร์แอกทีฟขนาดกะทัดรัด แสดงถึงความซับซ้อน
เช่น รายชื่อติดต่อหรือแท็ก มักมีไอคอนและป้ายกำกับ สามารถทำได้
ตรวจสอบได้ ปิดได้ หรือคลิกได้
ชิปทั้ง 4 ประเภทและตำแหน่งที่คุณสามารถใช้ได้มีดังนี้
- ช่วย: แนะนำผู้ใช้ในระหว่างทำงาน มักปรากฏเป็นองค์ประกอบ UI ชั่วคราวเพื่อตอบสนองต่อข้อมูลจากผู้ใช้
- ตัวกรอง: อนุญาตให้ผู้ใช้ปรับแต่งเนื้อหาจากชุดตัวเลือก โดยสามารถเลือกหรือยกเลิกการเลือกได้ และอาจมีไอคอนเครื่องหมายถูกเมื่อเลือก
- อินพุต: แสดงข้อมูลที่ได้จากผู้ใช้ เช่น รายการที่เลือกในเมนู โดยสามารถมีไอคอนและข้อความ รวมทั้งมีเครื่องหมาย "X" เพื่อนำออก
- คําแนะนํา: ให้คําแนะนําแก่ผู้ใช้โดยอิงตามกิจกรรมหรืออินพุตล่าสุด โดยปกติจะปรากฏใต้ช่องป้อนข้อมูลเพื่อแจ้งให้ผู้ใช้ดำเนินการ
แพลตฟอร์ม API
Composable มี 4 รายการที่สอดคล้องกับชิปทั้ง 4 ประเภท ส่วนต่อไปนี้จะอธิบายคอมโพสิเบิลเหล่านี้และความแตกต่างอย่างละเอียด แต่มีพารามิเตอร์ต่อไปนี้เหมือนกัน
label
: สตริงที่ปรากฏบนชิปicon
: ไอคอนที่แสดงที่จุดเริ่มต้นของชิป Composable บางรายการมีพารามิเตอร์leadingIcon
และtrailingIcon
แยกกันonClick
: lambda ที่ชิปเรียกใช้เมื่อผู้ใช้กด
ชิปความช่วยเหลือ
Composable ของ AssistChip
เป็นวิธีที่ไม่ซับซ้อนในการสร้าง
ชิปผู้ช่วยที่สะกิดผู้ใช้ไปในทิศทางที่กำหนด ฟีเจอร์ที่โดดเด่นอย่างหนึ่งคือพารามิเตอร์ leadingIcon
ซึ่งช่วยให้คุณแสดงไอคอนทางด้านซ้ายของชิปได้ ตัวอย่างต่อไปนี้แสดงวิธีใช้งาน
@Composable fun AssistChipExample() { AssistChip( onClick = { Log.d("Assist chip", "hello world") }, label = { Text("Assist chip") }, leadingIcon = { Icon( Icons.Filled.Settings, contentDescription = "Localized description", Modifier.size(AssistChipDefaults.IconSize) ) } ) }
การติดตั้งใช้งานนี้จะปรากฏดังนี้

ชิปตัวกรอง
คอมโพสิเบิล FilterChip
กำหนดให้คุณติดตามว่ามีการชิปหรือไม่ ตัวอย่างต่อไปนี้แสดงวิธีแสดงไอคอนที่เลือกไว้ล่วงหน้าเฉพาะเมื่อผู้ใช้เลือกชิปเท่านั้น
@Composable fun FilterChipExample() { var selected by remember { mutableStateOf(false) } FilterChip( onClick = { selected = !selected }, label = { Text("Filter chip") }, selected = selected, leadingIcon = if (selected) { { Icon( imageVector = Icons.Filled.Done, contentDescription = "Done icon", modifier = Modifier.size(FilterChipDefaults.IconSize) ) } } else { null }, ) }
การติดตั้งใช้งานนี้จะปรากฏดังนี้เมื่อยกเลิกการเลือก

และปรากฏดังต่อไปนี้เมื่อเลือก

ชิปอินพุต
คุณสามารถใช้คอมโพสิเบิล InputChip
เพื่อสร้างชิปที่เกิดจากการโต้ตอบของผู้ใช้ ตัวอย่างเช่น ในโปรแกรมรับส่งอีเมล เมื่อผู้ใช้กำลังเขียน
อีเมล ชิปอินพุตอาจแสดงถึงตัวบุคคลซึ่งมีที่อยู่ที่ผู้ใช้ได้ป้อนไว้
เป็น "to:" ด้วย
การใช้งานต่อไปนี้แสดงชิปอินพุตที่อยู่ในสถานะ "เลือกแล้ว" ผู้ใช้ปิดชิปเมื่อกดชิป
@Composable fun InputChipExample( text: String, onDismiss: () -> Unit, ) { var enabled by remember { mutableStateOf(true) } if (!enabled) return InputChip( onClick = { onDismiss() enabled = !enabled }, label = { Text(text) }, selected = enabled, avatar = { Icon( Icons.Filled.Person, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, trailingIcon = { Icon( Icons.Default.Close, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, ) }
การติดตั้งใช้งานนี้จะปรากฏดังนี้

ชิปคำแนะนำ
คอมโพสิเบิล SuggestionChip
เป็นคอมโพสิเบิลพื้นฐานที่สุดที่แสดงในหน้านี้ ทั้งในแง่ของคําจํากัดความ API และกรณีการใช้งานทั่วไป ชิปคำแนะนำจะแสดงคำแนะนำที่สร้างขึ้นแบบไดนามิก ตัวอย่างเช่น ในแอปแชท AI คุณจะ
อาจใช้ชิปคำแนะนำเพื่อแสดงคำตอบที่เป็นไปได้สำหรับ
ลองดูการใช้งาน SuggestionChip
ต่อไปนี้
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
การใช้งานนี้จะปรากฏดังนี้

ชิปที่ยกขึ้น
ตัวอย่างทั้งหมดในเอกสารนี้ใช้คอมโพสิเบิลพื้นฐานที่มีรูปลักษณ์แบบแบน หากต้องการชิปที่มีรูปลักษณ์โดดเด่น ให้ใช้คอมโพสิเบิลอย่างใดอย่างหนึ่งต่อไปนี้