Composable Card berfungsi sebagai penampung Material Design untuk UI Anda.
Kartu biasanya menampilkan satu bagian konten yang koheren. Contoh berikut menunjukkan tempat Anda dapat menggunakan kartu:
- Produk di aplikasi belanja.
- Berita di aplikasi berita.
- Pesan di aplikasi komunikasi.
Fokus pada penggambaran satu bagian konten yang membedakan Card dari penampung lainnya. Misalnya, Scaffold memberikan struktur umum ke 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 lainnya di Compose. Anda mendeklarasikan kontennya dengan memanggil composable lain di dalamnya. Misalnya, perhatikan 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. Referensi ini menentukan beberapa parameter yang memungkinkan Anda menyesuaikan tampilan dan perilaku komponen.
Beberapa parameter utama 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 penampung dan turunan.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 diperhatikan adalah overload yang menentukan parameteronClick. Anda harus menggunakan overload ini jika ingin penerapanCardmerespons 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 terisi.
@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 sebagai berikut:
Kartu yang ditinggikan
Cuplikan berikut menunjukkan cara menerapkan kartu yang ditinggikan. Gunakan
composable ElevatedCard khusus.
Anda dapat menggunakan properti elevation untuk mengontrol tampilan ketinggian 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 sebagai berikut:
Kartu dengan garis luar
Berikut adalah contoh kartu dengan garis luar. Gunakan composable khusus
OutlinedCard.
@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 sebagai berikut:
Batasan
Kartu tidak dilengkapi dengan tindakan scroll atau tutup bawaan, tetapi dapat diintegrasikan ke dalam composable yang menawarkan fitur ini. Misalnya, untuk menerapkan geser untuk menutup
pada kartu, integrasikan dengan SwipeToDismiss composable. Untuk berintegrasi
dengan scroll, gunakan pengubah scroll seperti verticalScroll. Lihat dokumentasi Scroll
untuk mengetahui informasi selengkapnya.