Composable Card
bertindak sebagai penampung Desain Material untuk UI Anda.
Kartu biasanya menyajikan satu konten yang koheren. Berikut adalah
beberapa contoh tempat Anda dapat menggunakan kartu:
- Produk di aplikasi belanja.
- Artikel berita di aplikasi berita.
- Pesan di aplikasi komunikasi.
Fokusnya adalah menggambarkan satu bagian konten yang membedakan Card
dari penampung lainnya. Misalnya, Scaffold
memberikan 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.
Implementasi dasar
Card
berperilaku seperti penampung lain di Compose. Anda mendeklarasikan kontennya dengan
memanggil composable lain di dalamnya. Misalnya, perhatikan cara Card
berisi
panggilan ke Text
dalam contoh minimal berikut:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
Implementasi lanjutan
Lihat referensi untuk definisi API Card
. Class 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 tertinggi di atas latar belakang.colors
: Menggunakan jenisCardColors
untuk menetapkan warna default penampung dan turunan apa pun.enabled
: Jika Anda meneruskanfalse
untuk parameter ini, kartu akan tampak dinonaktifkan dan tidak merespons input pengguna.onClick
: Biasanya,Card
tidak menerima peristiwa klik. Dengan demikian, overload utama yang perlu Anda perhatikan adalah overload yang menentukan parameteronClick
. Anda harus menggunakan overload ini jika ingin implementasiCard
merespons penekanan dari pengguna.
Contoh berikut menunjukkan cara menggunakan parameter ini, serta
parameter umum lainnya seperti shape
dan modifier
.
Kartu yang terisi
Berikut adalah contoh cara menerapkan kartu yang terisi.
Kuncinya di sini adalah penggunaan properti colors
untuk mengubah warna
yang 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 muncul 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 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 muncul sebagai berikut:
Kartu dengan Garis Batas
Berikut adalah contoh kartu yang digarisbatasi. 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 muncul sebagai 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 guna menutup
kartu, integrasikan dengan composable SwipeToDismiss
. Untuk berintegrasi
dengan scroll, gunakan pengubah scroll seperti verticalScroll
. Lihat Dokumentasi
Scroll untuk informasi selengkapnya.