Jetpack Compose Glimmer'da Card bileşeni, ilgili içeriklerin birincil kapsayıcısı olarak işlev görür ve anlaşılır bilgi birimleri için net bir görsel sınır oluşturur. Kartlar son derece uyarlanabilir olup ana içerik, isteğe bağlı başlıklar, altyazılar ve öndeki veya arkadaki simgelerin kombinasyonlarını destekler. Kartlar varsayılan olarak mevcut maksimum genişliği doldurur, odaklanılabilir ve tıklanabilir hale getirilebilir. Kartlar, başlık resminin en üstte, ardından başlık, alt başlık ve gövde içeriğinin yer aldığı dikey düzeni destekler.
Kartlar, Jetpack Compose Glimmer yüzey sistemi üzerine kurulduğundan derinlik efektleri, kırpma ve tutarlı kenarlık vurguları gibi fiziksel özellikleri devralır.
Anatomi ve alanlar
Jetpack Compose Glimmer kartı, içeriğini ve düzenini özelleştirmenize olanak tanıyan çeşitli özel öğelerden oluşur.
| Alan | Açıklama |
|---|---|
Başlık |
Kartın üst kısmı, resim eklemek için tasarlanmıştır. |
Başlık ve alt başlık |
Bu metin alanları, kartın ana ve ikincil etiketlerini sağlar. Başlık, alt başlığın üstüne yerleştirilir. |
Ön simge |
Kartın içerik alanının başında görünen isteğe bağlı bir simge (genellikle |
Sondaki simge |
Kartın içerik alanının sonunda görünen isteğe bağlı simge. |
Ana içerik |
Birincil |
Kart varsayılanları
Kartlar için aşağıdaki varsayılanlar geçerlidir:
- Genişlik: Kartlar, ekran gözlüklerinde okunabilirliği optimize etmek için ekranın kullanılabilir maksimum genişliğini doldurur.
- Minimum yükseklik:
80.dp - Metin dikey aralığı:
3.dp - Başlık şekli:
24.dpköşeliRoundedCornerShapekullanır. - İçerik dolgusu: Varsayılan olarak
GlimmerTheme.componentSpacingValues.mediumdeğerine ayarlanır. Bu, başlık resimlerinin ve içerik kapsayıcısının etrafındaki en dıştaki dolguyu etkiler. - Şekil: Varsayılan olarak
GlimmerTheme.shapes.mediumdeğerine ayarlanır. Metin oluşturma: Aşağıdaki yuvalar için
GlimmerTheme.typographyöğesindeki varsayılan değerleri kullanır:- Başlık:
bodyMedium - Alt başlık:
caption - Ana içerik:
bodySmall
- Başlık:
Örnek: Temel kart
Aşağıdaki kodda kart oluşturmak için gereken minimum kod gösterilmektedir:
Card { Text("This is a card") }
Örnek: Birden fazla slota sahip kart
Aşağıdaki kodda, kart oluşturmak için birden fazla yuvanın birlikte nasıl kullanılacağı gösterilmektedir:
Card( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, trailingIcon = { Icon(BookmarkIcon, contentDescription = "Bookmark") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, ) { Text("This is a complete card") }
Kodla ilgili önemli noktalar
- Kartın içeriğini ve yapısını özelleştirmek için
title,subtitleveleadingIcongibi çeşitli kart öğelerinin nasıl kullanılacağını gösterir. - Tüm kart yüzeyini etkileşimli hale getirmek için
onClickileCardaşırı yüklemesini kullanır.
İşlem kartları
Karta işlem düğmesi eklemek istiyorsanız ActionCard kullanın. İşlem kartları, standart kartlarla aynı öğeleri içerir ve alt kısımdaki düğmeyi tanımlayan ek bir action parametresi de içerir.
ActionCard örneği.Örnek: Temel işlem kartı
Bu kodda ActionCard nasıl oluşturulacağı gösterilmektedir:
ActionCard( action = { Button(onClick = {}, trailingIcon = { Icon(FavoriteIcon, "Localized description") }) { Text("Send") } } ) { Text("This is a card with a title, leading icon, header image, and action") }
Örnek: Simge içeren işlem kartı
Bu kodda, simgelerle daha karmaşık bir ActionCard oluşturma işlemi gösterilmektedir:
ActionCard( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, action = { Button(onClick = { /* Handle action */ }) { Text("Action") } } ) { Text( "This is the main body content of the card, utilizing theme-tokens for consistent styling.", style = GlimmerTheme.typography.bodyMedium ) }