คอมโพเนนต์ Chip เป็นองค์ประกอบ UI แบบอินเทอร์แอกทีฟขนาดกะทัดรัด ซึ่งแสดงถึงเอนทิตีที่ซับซ้อน เช่น รายชื่อติดต่อหรือแท็ก โดยมักจะมีไอคอนและป้ายกำกับ โดยอาจเป็นแบบเลือกได้ ปิดได้ หรือคลิกได้
ชิปทั้ง 4 ประเภทและตำแหน่งที่คุณอาจใช้มีดังนี้
- ช่วยเหลือ: แนะนำผู้ใช้ในระหว่างการทำงาน มักปรากฏเป็นองค์ประกอบ UI ชั่วคราวเพื่อตอบสนองต่อการป้อนข้อมูลของผู้ใช้
- ตัวกรอง: ช่วยให้ผู้ใช้ปรับแต่งเนื้อหาจากชุดตัวเลือกได้ โดยสามารถเลือกหรือยกเลิกการเลือกได้ และอาจมีไอคอนเครื่องหมายถูกเมื่อเลือก
- อินพุต: แสดงข้อมูลที่ผู้ใช้ระบุ เช่น การเลือกในเมนู โดยอาจมีไอคอนและข้อความ รวมถึงมีเครื่องหมาย X เพื่อนำออก
- คำแนะนำ: ให้คำแนะนำแก่ผู้ใช้โดยอิงตามกิจกรรมหรือข้อมูลที่ป้อนล่าสุด โดยปกติแล้วจะปรากฏใต้ช่องป้อนข้อมูลเพื่อแจ้งให้ผู้ใช้ดำเนินการ
แพลตฟอร์ม API
มี Composable 4 รายการที่สอดคล้องกับชิป 4 ประเภท ส่วนต่อไปนี้จะอธิบายฟังก์ชันที่ประกอบกันได้เหล่านี้และความแตกต่างโดยละเอียด อย่างไรก็ตาม ฟังก์ชันเหล่านี้มีพารามิเตอร์ต่อไปนี้ร่วมกัน
label: สตริงที่ปรากฏบนชิปicon: ไอคอนที่แสดงที่จุดเริ่มต้นของชิป Composable บางรายการที่เฉพาะเจาะจงมีพารามิเตอร์leadingIconและtrailingIconแยกกันonClick: Lambda ที่ชิปเรียกใช้เมื่อผู้ใช้กด
ชิปตัวช่วย
คอมโพสิเบิล 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 }, ) }
การใช้งานนี้จะปรากฏดังนี้เมื่อไม่ได้เลือก
และจะปรากฏดังนี้เมื่อเลือก
ชิปอินพุต
คุณสามารถใช้ Composable InputChip เพื่อสร้างชิปที่เกิดจากการโต้ตอบของผู้ใช้ได้ ตัวอย่างเช่น ในโปรแกรมรับส่งอีเมล เมื่อผู้ใช้เขียนอีเมล ชิปอินพุตอาจแสดงรายชื่อติดต่อที่ผู้ใช้เพิ่มลงในช่อง "ถึง:"
การใช้งานต่อไปนี้แสดงชิปอินพุตที่อยู่ในสถานะเลือกแล้ว ผู้ใช้จะปิดชิปเมื่อกดชิป
@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) ) }, ) }
การใช้งานนี้จะปรากฏดังนี้
ชิปคำแนะนำ
Composable SuggestionChip เป็น Composable พื้นฐานที่สุดที่แสดงในหน้านี้ ทั้งในคำจำกัดความของ API และ Use Case ทั่วไป ชิปคำแนะนำจะแสดงคำแนะนำที่สร้างขึ้นแบบไดนามิก ตัวอย่างเช่น ในแอปแชท AI คุณอาจใช้ชิปคำแนะนำเพื่อแสดงคำตอบที่เป็นไปได้สำหรับข้อความล่าสุด
ลองพิจารณาการใช้งาน SuggestionChip ต่อไปนี้
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
การใช้งานนี้จะปรากฏดังนี้
ชิปแบบยกสูง
ตัวอย่างทั้งหมดในเอกสารนี้ใช้ Composable พื้นฐานที่มีลักษณะแบนราบ หากต้องการชิปที่มีลักษณะนูนขึ้น ให้ใช้ Composable อย่างใดอย่างหนึ่งต่อไปนี้