Anda dapat menggunakan daftar dengan beberapa jenis item untuk menampilkan jenis konten campuran seperti teks, gambar, dan elemen interaktif.
Hasil
Kompatibilitas versi
Implementasi ini mengharuskan minSDK project Anda ditetapkan ke level API 21 atau yang lebih tinggi.
Dependensi
Menambahkan beberapa jenis item
Anda dapat menentukan jenis konten untuk setiap item tata letak saat membuat daftar atau petak dengan beberapa jenis item:
@Composable fun ListWithMultipleItems(messages: List<Any>) { LazyColumn { items( messages.size, contentType = { it } ) { for (message in messages) when (message) { is MediaStore.Audio -> AudioMessage(message) is Text -> TextMessage(message) } } } } @Composable fun AudioMessage(message: MediaStore.Audio) { TODO("Not yet implemented.") } @Composable fun TextMessage(message: Text) { TODO("Not yet implemented.") } data class SampleMessage(val text: String, val content: Any)
Poin penting tentang kode
- Menentukan jenis konten untuk setiap item dengan menetapkan
contentTypediitems(). - Memetakan setiap jenis konten ke composable yang sesuai. Misalnya,
AudioadalahcontentTypeyang ditentukan di tempat lain dan dipetakan keAudioMessagecomposable. - Compose menggunakan kembali composable yang dirender untuk setiap item dari jenis konten tertentu.
Koleksi yang berisi panduan ini
Panduan ini adalah bagian dari koleksi Panduan Singkat pilihan yang mencakup sasaran pengembangan Android yang lebih luas:
Menampilkan daftar atau petak
Daftar dan petak memungkinkan aplikasi Anda menampilkan koleksi dalam bentuk yang
menarik secara visual dan mudah digunakan oleh pengguna.
Menampilkan komponen interaktif
Pelajari cara fungsi composable dapat memungkinkan Anda membuat komponen UI yang indah dengan mudah
berdasarkan sistem desain Desain Material.
Dasar-dasar Compose (koleksi video)
Seri video ini memperkenalkan berbagai Compose API,
dengan cepat menunjukkan apa yang tersedia dan cara menggunakannya.
Ada pertanyaan atau masukan
Buka halaman pertanyaan umum (FAQ) kami dan pelajari panduan singkat atau hubungi kami dan sampaikan pendapat Anda.