Composable Card berfungsi sebagai penampung Desain Material untuk UI Anda.
Kartu biasanya menampilkan satu konten yang koheren. Contoh berikut
menunjukkan tempat Anda dapat menggunakan kartu:
- Produk di aplikasi belanja.
- Artikel berita di aplikasi berita.
- Pesan di aplikasi komunikasi.
Fokus pada penggambaran satu konten inilah yang membedakan
Card dari penampung lainnya. Misalnya, Scaffold menyediakan struktur umum
untuk seluruh layar. Kartu umumnya merupakan elemen UI yang lebih kecil di dalam tata letak yang lebih besar, sedangkan komponen tata letak seperti Column atau Row menyediakan API yang lebih sederhana dan lebih umum.
Penerapan dasar
Card berperilaku seperti penampung lain di Compose. Anda mendeklarasikan kontennya dengan
memanggil composable lain di dalamnya. Misalnya, pertimbangkan bagaimana Card berisi
panggilan ke Text dalam contoh minimal berikut:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
Penerapan lanjutan
Lihat referensi untuk definisi API Card. Fungsi ini menentukan beberapa
parameter yang memungkinkan Anda menyesuaikan tampilan dan perilaku
komponen.
Beberapa parameter penting yang perlu diperhatikan adalah sebagai berikut:
elevation: Menambahkan bayangan ke komponen yang membuatnya tampak lebih tinggi dari latar belakang.colors: Menggunakan jenisCardColorsuntuk menetapkan warna default container dan turunannya.enabled: Jika Anda meneruskanfalseuntuk parameter ini, kartu akan muncul sebagai dinonaktifkan dan tidak merespons input pengguna.onClick: Biasanya,Cardtidak menerima peristiwa klik. Oleh karena itu, overload utama yang perlu Anda perhatikan adalah yang menentukan parameteronClick. Anda harus menggunakan overload ini jika ingin implementasiCardmerespons penekanan dari pengguna.
Contoh berikut menunjukkan cara menggunakan parameter ini, serta
parameter umum lainnya seperti shape dan modifier.
Kartu terisi
Berikut adalah contoh cara menerapkan kartu terisi.
Kuncinya di sini adalah penggunaan properti colors untuk mengubah warna
yang diisi.
@Composable fun FilledCardExample() { Card( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surfaceVariant, ), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Filled", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
Implementasi ini akan terlihat seperti berikut:
Kartu yang Ditinggikan
Cuplikan berikut menunjukkan cara mengimplementasikan kartu timbul. Gunakan
composable ElevatedCard khusus.
Anda dapat menggunakan properti elevation untuk mengontrol tampilan elevasi dan
bayangan yang dihasilkan.
@Composable fun ElevatedCardExample() { ElevatedCard( elevation = CardDefaults.cardElevation( defaultElevation = 6.dp ), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Elevated", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
Implementasi ini akan terlihat seperti berikut:
Kartu Bergaris Tepi
Berikut adalah contoh kartu bergaris batas. Gunakan composable
OutlinedCard khusus.
@Composable fun OutlinedCardExample() { OutlinedCard( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surface, ), border = BorderStroke(1.dp, Color.Black), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Outlined", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
Implementasi ini akan terlihat seperti berikut:
Batasan
Kartu tidak dilengkapi dengan tindakan scroll atau tutup yang melekat, tetapi dapat diintegrasikan ke dalam
composable yang menawarkan fitur ini. Misalnya, untuk menerapkan geser untuk menutup
pada kartu, integrasikan dengan composable SwipeToDismiss. Untuk berintegrasi
dengan scroll, gunakan pengubah scroll seperti verticalScroll. Lihat dokumentasi
Scroll untuk mengetahui informasi selengkapnya.