Komponen Chip
adalah elemen UI yang ringkas dan interaktif. Elemen ini mewakili entitas
yang kompleks seperti kontak atau tag, sering kali dengan ikon dan label. Kolom tersebut dapat
dicentang, dapat ditutup, atau diklik.
Keempat jenis chip dan tempat Anda dapat menggunakannya adalah sebagai berikut:
- Bantuan: Memandu pengguna selama melakukan tugas. Sering kali muncul sebagai elemen UI sementara sebagai respons terhadap input pengguna.
- Filter: Memungkinkan pengguna menyaring konten dari sekumpulan opsi. Ikon ini dapat dipilih atau dibatalkan pilihannya, dan dapat menyertakan ikon tanda centang saat dipilih.
- Input: Merepresentasikan informasi yang disediakan pengguna, seperti pilihan pada menu. Folder dapat berisi ikon dan teks, serta memberikan 'X' untuk dihapus.
- Saran: Memberikan rekomendasi kepada pengguna berdasarkan aktivitas atau input terbaru mereka. Biasanya muncul di bawah kolom input untuk meminta tindakan pengguna.
Platform API
Ada empat composable yang sesuai dengan empat jenis chip. Bagian berikut menguraikan composable ini dan perbedaannya secara mendetail. Namun, keduanya berbagi parameter berikut:
label
: String yang muncul di chip.icon
: Ikon yang ditampilkan di awal chip. Beberapa composable tertentu memiliki parameterleadingIcon
dantrailingIcon
terpisah.onClick
: Lambda yang dipanggil chip saat pengguna menekannya.
Chip panduan
Composable AssistChip
menyediakan cara mudah untuk membuat
chip bantuan yang mendorong pengguna ke arah tertentu. Salah satu fitur
pembedanya adalah parameter leadingIcon
yang memungkinkan Anda menampilkan ikon di
sisi kiri chip. Contoh berikut menunjukkan cara menerapkannya:
@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) ) } ) }
Implementasi ini muncul sebagai berikut.
Filter chip
Composable FilterChip
mengharuskan Anda melacak apakah chip
dipilih atau tidak. Contoh berikut menunjukkan cara menampilkan ikon yang dicentang di awal hanya jika pengguna telah memilih chip:
@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 }, ) }
Penerapan ini akan muncul seperti berikut jika tidak dipilih:
Dan muncul seperti berikut saat dipilih:
Chip input
Anda dapat menggunakan composable InputChip
untuk membuat chip yang dihasilkan dari
interaksi pengguna. Misalnya, dalam program email, saat pengguna menulis email, chip input mungkin merepresentasikan orang yang alamatnya telah dimasukkan pengguna ke kolom "to:".
Implementasi berikut menunjukkan chip input yang sudah dalam status yang dipilih. Pengguna menutup chip saat menekannya.
@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) ) }, ) }
Implementasi ini muncul sebagai berikut.
Chip saran
Composable SuggestionChip
adalah composable paling dasar yang tercantum
di halaman ini, baik dalam definisi API maupun kasus penggunaan umum. Chip
saran menyajikan petunjuk yang dihasilkan secara dinamis. Misalnya, di aplikasi chat AI, Anda
dapat menggunakan chip saran untuk menampilkan kemungkinan respons terhadap pesan
terbaru.
Pertimbangkan penerapan SuggestionChip
ini:
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
Implementasi ini muncul sebagai berikut:
Chip yang dinaikkan
Semua contoh dalam dokumen ini menggunakan composable dasar yang berbentuk datar. Jika Anda menginginkan chip yang memiliki tampilan yang lebih tinggi, gunakan salah satu dari tiga composable berikut: