Komponen Switch memungkinkan pengguna beralih antara dua status: dicentang
dan tidak dicentang. Di aplikasi Anda, Anda dapat menggunakan tombol untuk memungkinkan pengguna melakukan salah satu hal berikut:
- Mengaktifkan atau menonaktifkan setelan.
- Mengaktifkan atau menonaktifkan fitur.
- Memilih salah satu opsi.
Komponen ini memiliki dua bagian: thumb dan track. Thumb adalah bagian tombol yang dapat ditarik, dan track adalah latar belakang. Pengguna dapat menarik thumb ke kiri atau kanan untuk mengubah status tombol. Mereka juga dapat mengetuk tombol untuk mencentang dan menghapusnya.
Penerapan dasar
Lihat referensi Switch untuk mengetahui definisi API lengkap. Berikut adalah beberapa parameter utama yang mungkin perlu Anda gunakan:
checked: Status awal tombol.onCheckedChange: Callback yang dipanggil saat status tombol berubah.enabled: Apakah tombol diaktifkan atau dinonaktifkan.colors: Warna yang digunakan untuk tombol.
Contoh berikut adalah penerapan minimal composable Switch.
@Composable fun SwitchMinimalExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it } ) }
Penerapan ini akan terlihat sebagai berikut jika tidak dicentang:
Berikut adalah tampilan saat dicentang:
Penerapan lanjutan
Parameter utama yang mungkin ingin Anda gunakan saat menerapkan tombol yang lebih canggih adalah sebagai berikut:
thumbContent: Gunakan parameter ini untuk menyesuaikan tampilan thumb saat dicentang.colors: Gunakan parameter ini untuk menyesuaikan warna track dan thumb.
Thumb kustom
Anda dapat meneruskan composable apa pun untuk parameter thumbContent guna membuat thumb kustom. Berikut adalah contoh tombol yang menggunakan ikon kustom untuk thumb-nya:
@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 } ) }
Dalam penerapan ini, tampilan yang tidak dicentang sama dengan contoh di bagian sebelumnya. Namun, saat dicentang, penerapan ini akan terlihat sebagai berikut:
Warna kustom
Contoh berikut menunjukkan cara menggunakan parameter warna untuk mengubah warna thumb dan track tombol, dengan mempertimbangkan apakah tombol dicentang atau tidak.
@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, ) ) }
Penerapan ini akan terlihat sebagai berikut: