התוכן הקומפוזבילי Card
משמש כקונטיינר בעיצוב Material לממשק המשתמש.
בדרך כלל הכרטיסים מציגים קטע תוכן יחיד ועקבי. אלו הם
כמה דוגמאות למקומות שבהם אפשר להשתמש בכרטיס:
- מוצר באפליקציית שופינג.
- כתבה חדשותית באפליקציית חדשות.
- הודעה באפליקציית תקשורת.
ההתמקדות היא בהצגת פריט תוכן יחיד שמסמן
Card
ממאגרים אחרים. לדוגמה, Scaffold
מספק מבנה כללי
לצפות במסך מלא. הכרטיס הוא בדרך כלל רכיב קטן יותר בממשק המשתמש בתוך
ורכיב פריסה כמו Column
או Row
מספק
ועוד API כללי יותר.
הטמעה בסיסית
ההתנהגות של Card
דומה לזו של קונטיינרים אחרים ב-Compose. כדי להצהיר על התוכן שלו, צריך להפעיל בו רכיבים אחרים. לדוגמה, נבחן את האופן שבו Card
מכיל
קריאה ל-Text
בדוגמה המינימלית הבאה:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
הטמעות מתקדמות
בחומר העזר תוכלו למצוא את הגדרת ה-API של Card
. הוא מגדיר כמה
שמאפשרים לכם להתאים אישית את המראה וההתנהגות של
לרכיב הזה.
ריכזנו כאן רשימה של כמה פרמטרים מרכזיים שכדאי לשים לב אליהם:
elevation
: הוספת צל לרכיב שגורם לו להופיע גבוה מעל הרקע.colors
: שימוש בסוגCardColors
כדי להגדיר את צבע ברירת המחדל של שניהם מאגר התגים וכל הצאצאים.enabled
: אם מעבירים את הערךfalse
לפרמטר הזה, הכרטיס יופיע כך מושבת ולא מגיב לקלט של משתמשים.onClick
: בדרך כלל,Card
לא מקבל אירועים מסוג קליק. לכן, עומס היתר העיקרי שברצונך לציין הוא שמגדיר הפרמטרonClick
. כדאי להשתמש בעומס יתר הזה אם אתם רוצים שההטמעה שלCard
תגיב ללחיצות של המשתמש.
הדוגמה הבאה ממחישה איך אפשר להשתמש בפרמטרים האלה.
כמו פרמטרים נפוצים אחרים כמו shape
ו-modifier
.
כרטיס מלא
בדוגמה הבאה אפשר לראות איך מטמיעים כרטיס שמולא.
המפתח כאן הוא השימוש בנכס colors
כדי לשנות את הצבע המלא.
@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, ) } }
היישום הזה נראה כך:
כרטיס מורחב
קטע הקוד הבא מראה איך מטמיעים כרטיס מורחב. משתמשים ב
ייעודי לתוכן קומפוזבילי ElevatedCard
.
אפשר להשתמש במאפיין elevation
כדי לשלוט במראה של הגובה
את הצל שנוצר.
@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, ) } }
היישום הזה נראה כך:
כרטיס עם קווי מתאר
הדוגמה הבאה היא של כרטיס קווי. משתמשים
תוכן קומפוזבילי 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, ) } }
היישום הזה נראה כך:
מגבלות
הכרטיסים לא כוללים גלילה או ביטול מובנות, אבל אפשר לשלב אותם
של תכנים קומפוזביליים שמספקים את התכונות האלה. לדוגמה, כדי להטמיע את האפשרות להחליק כדי לסגור כרטיס, משלבים אותו עם הרכיב הניתן לקיבוץ SwipeToDismiss
. כדי לשלב:
בזמן הגלילה, משתמשים במקשי קיצור של גלילה כמו verticalScroll
. הצגת הגלילה
תיעוד למידע נוסף.