ชิป

คอมโพเนนต์ Chip เป็นองค์ประกอบ UI แบบอินเทอร์แอกทีฟขนาดกะทัดรัด แสดงถึงความซับซ้อน เช่น รายชื่อติดต่อหรือแท็ก มักมีไอคอนและป้ายกำกับ สามารถทำได้ ตรวจสอบได้ ปิดได้ หรือคลิกได้

ชิปทั้ง 4 ประเภทและตำแหน่งที่คุณสามารถใช้ได้มีดังนี้

  • ช่วย: แนะนำผู้ใช้ในระหว่างทำงาน มักปรากฏเป็นองค์ประกอบ UI ชั่วคราวเพื่อตอบสนองต่อข้อมูลจากผู้ใช้
  • ตัวกรอง: อนุญาตให้ผู้ใช้ปรับแต่งเนื้อหาจากชุดตัวเลือก โดยสามารถเลือกหรือยกเลิกการเลือกได้ และอาจมีไอคอนเครื่องหมายถูกเมื่อเลือก
  • อินพุต: แสดงข้อมูลที่ได้จากผู้ใช้ เช่น รายการที่เลือกในเมนู โดยสามารถมีไอคอนและข้อความ รวมทั้งมีเครื่องหมาย "X" เพื่อนำออก
  • คําแนะนํา: ให้คําแนะนําแก่ผู้ใช้โดยอิงตามกิจกรรมหรืออินพุตล่าสุด โดยปกติจะปรากฏใต้ช่องป้อนข้อมูลเพื่อแจ้งให้ผู้ใช้ดำเนินการ
ตัวอย่างคอมโพเนนต์ชิป 4 อย่างโดยไฮไลต์ลักษณะเฉพาะตัว
รูปที่ 1 คอมโพเนนต์ชิป 4 รายการ

แพลตฟอร์ม 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)
            )
        }
    )
}

การติดตั้งใช้งานนี้จะปรากฏดังนี้

ชิปผู้ช่วยที่ใช้งานง่าย
รูปที่ 2 ชิปความช่วยเหลือ

ชิปตัวกรอง

คอมโพสิเบิล 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
        },
    )
}

การติดตั้งใช้งานนี้จะปรากฏดังนี้เมื่อยกเลิกการเลือก

ชิปตัวกรองที่ไม่ได้เลือก ซึ่งไม่มีการเลือกและพื้นหลังแผน
รูปที่ 3 ชิปตัวกรองที่ยังไม่ได้เลือก

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

ชิปฟิลเตอร์ที่เลือกพร้อมเครื่องหมายถูกและพื้นหลังสี
รูปที่ 4 ชิปฟิลเตอร์ที่เลือก

ชิปอินพุต

คุณสามารถใช้คอมโพสิเบิล 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)
            )
        },
    )
}

การติดตั้งใช้งานนี้จะปรากฏดังนี้

ชิปอินพุตที่มีรูปโปรไฟล์และไอคอนต่อท้าย
รูปที่ 5 ใส่ชิป

ชิปคำแนะนำ

คอมโพสิเบิล SuggestionChip เป็นคอมโพสิเบิลพื้นฐานที่สุดที่แสดงในหน้านี้ ทั้งในแง่ของคําจํากัดความ API และกรณีการใช้งานทั่วไป ชิปคำแนะนำจะแสดงคำแนะนำที่สร้างขึ้นแบบไดนามิก ตัวอย่างเช่น ในแอปแชท AI คุณจะ อาจใช้ชิปคำแนะนำเพื่อแสดงคำตอบที่เป็นไปได้สำหรับ

ลองดูการใช้งาน SuggestionChip ต่อไปนี้

@Composable
fun SuggestionChipExample() {
    SuggestionChip(
        onClick = { Log.d("Suggestion chip", "hello world") },
        label = { Text("Suggestion chip") }
    )
}

การใช้งานนี้จะปรากฏดังนี้

ชิปผู้ช่วยที่ใช้งานง่าย
รูปที่ 6 ชิปผู้ช่วย

ชิปที่ยกขึ้น

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

แหล่งข้อมูลเพิ่มเติม