เปลี่ยน

คอมโพเนนต์ Switch อนุญาตให้ผู้ใช้สลับระหว่าง 2 สถานะ ได้แก่ เลือกแล้ว และไม่ได้เลือกไว้ ในแอป คุณอาจใช้สวิตช์เพื่อให้ผู้ใช้ดำเนินการอย่างใดอย่างหนึ่ง ดังต่อไปนี้:

  • สลับการตั้งค่าเป็นเปิดหรือปิด
  • เปิดหรือปิดใช้ฟีเจอร์
  • เลือกตัวเลือก

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

ตัวอย่างคอมโพเนนต์สวิตช์ทั้งในโหมดสว่างและโหมดมืด
รูปที่ 1 คอมโพเนนต์สวิตช์

การติดตั้งใช้งานขั้นพื้นฐาน

ดูคำจำกัดความ API ฉบับเต็มได้ที่ข้อมูลอ้างอิง Switch รายการต่อไปนี้คือ พารามิเตอร์หลักบางส่วนที่คุณอาจต้องการใช้ ได้แก่

  • checked: สถานะเริ่มต้นของสวิตช์
  • onCheckedChange: ฟังก์ชันการเรียกกลับที่เรียกใช้เมื่อสถานะของสวิตช์มีการเปลี่ยนแปลง
  • enabled: เปิดหรือปิดใช้สวิตช์
  • colors: สีที่ใช้สำหรับสวิตช์

ตัวอย่างต่อไปนี้เป็นการใช้งาน Switch composable แบบขั้นต่ำ

@Composable
fun SwitchMinimalExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        }
    )
}

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

สวิตช์พื้นฐานที่ไม่ได้เลือก
รูปที่ 2 สวิตช์ที่ยกเลิกการเลือก

ลักษณะที่ปรากฏเมื่อเลือก

สวิตช์พื้นฐานที่เลือกไว้
รูปที่ 3 สวิตช์ที่เลือก

การติดตั้งใช้งานขั้นสูง

พารามิเตอร์หลักที่คุณอาจต้องการใช้เมื่อติดตั้งใช้งานสวิตช์ขั้นสูงขึ้นมีดังนี้

  • thumbContent: ใช้เพื่อปรับแต่งลักษณะที่ปรากฏของภาพขนาดย่อเมื่อเลือก
  • colors: ใช้ตัวเลือกนี้เพื่อปรับแต่งสีของแทร็กและนิ้วโป้ง

ภาพขนาดย่อที่กำหนดเอง

คุณสามารถส่งคอมโพสิเบิลใดก็ได้สำหรับพารามิเตอร์ thumbContent เพื่อสร้างภาพปกที่กำหนดเอง ต่อไปนี้เป็นตัวอย่างของสวิตช์ที่ใช้ไอคอนที่กำหนดเองสำหรับ นิ้วโป้ง:

@Composable
fun SwitchWithIconExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        thumbContent = if (checked) {
            {
                Icon(
                    imageVector = Icons.Filled.Check,
                    contentDescription = null,
                    modifier = Modifier.size(SwitchDefaults.IconSize),
                )
            }
        } else {
            null
        }
    )
}

ในการติดตั้งใช้งานนี้ ลักษณะที่ปรากฏที่ไม่ได้ทำเครื่องหมายจะเหมือนกับตัวอย่างใน หัวข้อก่อนหน้านี้ แต่เมื่อทำเครื่องหมาย การติดตั้งนี้จะปรากฏเป็น ดังต่อไปนี้:

สวิตช์ที่ใช้พารามิเตอร์ thumbContent เพื่อแสดงไอคอนที่กำหนดเองเมื่อเลือก
รูปที่ 4 สวิตช์ที่มีไอคอนเลือกที่กำหนดเอง

สีที่กำหนดเอง

ตัวอย่างต่อไปนี้แสดงวิธีที่คุณสามารถใช้พารามิเตอร์สีเพื่อ เปลี่ยนสีนิ้วหัวแม่มือและแท่นหมุน โดยพิจารณาว่า เลือกสวิตช์แล้ว

@Composable
fun SwitchWithCustomColors() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        colors = SwitchDefaults.colors(
            checkedThumbColor = MaterialTheme.colorScheme.primary,
            checkedTrackColor = MaterialTheme.colorScheme.primaryContainer,
            uncheckedThumbColor = MaterialTheme.colorScheme.secondary,
            uncheckedTrackColor = MaterialTheme.colorScheme.secondaryContainer,
        )
    )
}

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

สวิตช์ที่ใช้พารามิเตอร์ colors เพื่อแสดงสวิตช์ที่มีสีที่กำหนดเองสำหรับทั้งปุ่มกดและหมุด
รูปที่ 5 สวิตช์ที่มีสีแบบกำหนดเอง

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