Tombol pilihan memungkinkan pengguna memilih opsi dari serangkaian opsi. Anda menggunakan tombol pilihan jika hanya satu item yang dapat dipilih dari daftar. Jika pengguna perlu memilih lebih dari satu item, gunakan tombol.
Platform API
Gunakan composable RadioButton untuk mencantumkan opsi yang tersedia. Gabungkan setiap
opsi RadioButton dan labelnya di dalam komponen Row untuk mengelompokkannya.
RadioButton mencakup parameter utama berikut:
selected: Menunjukkan apakah tombol pilihan dipilih.onClick: Fungsi lambda yang dijalankan aplikasi Anda saat pengguna mengklik tombol pilihan. Jika nilainyanull, pengguna tidak dapat berinteraksi langsung dengan tombol pilihan.enabled: Mengontrol apakah tombol pilihan diaktifkan atau dinonaktifkan. Pengguna tidak dapat berinteraksi dengan tombol pilihan yang dinonaktifkan.interactionSource: Memungkinkan Anda mengamati status interaksi tombol, misalnya, apakah tombol ditekan, diarahkan, atau difokuskan.
Membuat tombol pilihan dasar
Cuplikan kode berikut merender daftar tombol pilihan dalam Column:
@Composable fun RadioButtonSingleSelection(modifier: Modifier = Modifier) { val radioOptions = listOf("Calls", "Missed", "Friends") val (selectedOption, onOptionSelected) = remember { mutableStateOf(radioOptions[0]) } // Note that Modifier.selectableGroup() is essential to ensure correct accessibility behavior Column(modifier.selectableGroup()) { radioOptions.forEach { text -> Row( Modifier .fillMaxWidth() .height(56.dp) .selectable( selected = (text == selectedOption), onClick = { onOptionSelected(text) }, role = Role.RadioButton ) .padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically ) { RadioButton( selected = (text == selectedOption), onClick = null // null recommended for accessibility with screen readers ) Text( text = text, style = MaterialTheme.typography.bodyLarge, modifier = Modifier.padding(start = 16.dp) ) } } } }
Poin penting tentang kode
radioOptionsmewakili label untuk tombol pilihan.- Fungsi composable
remembermembuat variabel statusselectedOptiondan fungsi untuk mengupdate status tersebut yang disebutonOptionSelected. Status ini menyimpan opsi tombol pilihan yang dipilih.mutableStateOf(radioOptions[0])menginisialisasi status ke item pertama dalam daftar. "Calls" adalah item pertama, sehingga merupakan tombol pilihan yang dipilih secara default.
Modifier.selectableGroup()memastikan perilaku aksesibilitas yang tepat untuk pembaca layar. Ini memberi tahu sistem bahwa elemen dalamColumnini adalah bagian dari grup yang dapat dipilih, yang memungkinkan dukungan pembaca layar yang tepat.Modifier.selectable()membuat seluruhRowbertindak sebagai satu item yang dapat dipilih.selectedmenunjukkan apakahRowsaat ini dipilih berdasarkan statusselectedOption.- Fungsi lambda
onClickmemperbarui statusselectedOptionke opsi yang diklik saatRowdiklik. role = Role.RadioButtonmemberi tahu layanan aksesibilitas bahwaRowberfungsi sebagai tombol pilihan.
RadioButton(...)membuat composableRadioButton.onClick = nulldiRadioButtonmeningkatkan aksesibilitas. Hal ini mencegah tombol pilihan menangani peristiwa klik secara langsung, dan memungkinkan pengubahselectableRowmengelola status pilihan dan perilaku aksesibilitas.
Hasil
Referensi lainnya
- Desain Material: Tombol