יצירת רשימה עם כמה סוגי פריטים

אפשר להשתמש ברשימה עם כמה סוגים של פריטים כדי להציג סוגים שונים של תוכן, כמו טקסט, תמונות ורכיבים אינטראקטיביים.

תוצאות

פלט קוד שכולל אודיו והודעות טקסט
איור 1. פלט קוד שבו מוצגים אודיו והודעות טקסט.

תאימות גרסאות

כדי להטמיע את התכונה הזו, צריך להגדיר את minSDK בפרויקט לרמת API‏ 21 ומעלה.

פניות קשורות

הוספת כמה סוגי פריטים

כשיוצרים רשימה או רשת עם כמה סוגים של פריטים, אפשר לציין את סוג התוכן של כל פריט בפריסה:

@Composable
fun ListWithMultipleItems(messages: List<Any>) {
    LazyColumn {
        items(
            messages.size,
            contentType = { it }
        ) {
            for (message in messages)
                when (message) {
                    is MediaStore.Audio -> AudioMessage(message)
                    is Text -> TextMessage(message)
                }
        }
    }
}

@Composable
fun AudioMessage(message: MediaStore.Audio) {
    TODO("Not yet implemented.")
}

@Composable
fun TextMessage(message: Text) {
    TODO("Not yet implemented.")
}

data class SampleMessage(val text: String, val content: Any)

מידע חשוב על הקוד

  • מציינים את סוג התוכן של כל פריט על ידי הגדרת contentType ב-items().
  • ממפה כל סוג תוכן לרכיב הניתן להרכבה שמתאים לו. לדוגמה, Audio הוא contentType שמוגדר במקום אחר וממופה לרכיב AudioMessage שאפשר להרכיב.
  • הפונקציה Compose משתמשת מחדש ברכיבים הניתנים להרכבה שעברו עיבוד עבור כל פריט מסוג תוכן נתון.

אוספים שכוללים את המדריך הזה

המדריך הזה הוא חלק מאוספים של מדריכים מהירים שנבחרו בקפידה ועוסקים ביעדים רחבים יותר של פיתוח ל-Android:

רשימות ורשתות מאפשרות לאפליקציה להציג קולקציות בצורה נעימה לעין ונוחה לצפייה.
במאמר הזה מוסבר איך פונקציות שאפשר להרכיב מאפשרות ליצור בקלות רכיבי ממשק משתמש יפים על סמך מערכת העיצוב של Material Design.
בסדרת הסרטונים הזו מוצגים ממשקי API שונים של Compose, ומוסבר בקצרה מה זמין ואיך משתמשים בהם.

יש לך שאלות או משוב?

אפשר לעבור לדף השאלות הנפוצות שלנו כדי לקרוא מדריכים מהירים, או לפנות אלינו ולספר לנו מה דעתך.