إنشاء قائمة باستخدام أنواع عناصر متعددة

يمكنك استخدام قائمة تتضمّن أنواع عناصر متعددة لعرض أنواع محتوى مختلطة، مثل النص والصور والعناصر التفاعلية.

توافق الإصدار

يتطلّب هذا التنفيذ ضبط الحد الأدنى من إصدار حزمة SDK لمشروعك على المستوى 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.
  • تعيد ميزة "الإنشاء" استخدام العناصر القابلة للتجميع المعروضة لكل عنصر من نوع محتوى معيّن.

النتائج

إخراج الرمز الذي يعرض الرسائل الصوتية والنصية
الشكل 1. إخراج الرمز البرمجي الذي يعرض الرسائل الصوتية والنصية

المجموعات التي تتضمّن هذا الدليل

هذا الدليل هو جزء من مجموعات الأدلة السريعة المنظَّمة التي تتناول أهداف تطوير Android الأوسع نطاقًا:

تسمح القوائم والشبكات لتطبيقك بعرض المجموعات في شكلٍ ممتع من الناحية المرئية ويسهل على المستخدمين الاطّلاع عليه.
تعرَّف على كيفية استخدام الدوال القابلة للتجميع لإنشاء مكونات جميلة لواجهة المستخدم بسهولة استنادًا إلى نظام التصميم المتعدّد الأبعاد.
تعرِض سلسلة الفيديوهات هذه واجهات برمجة التطبيقات المختلفة لتطبيق Compose، وتوضّح لك بسرعة الميزات المتاحة وكيفية استخدامها.

إذا كانت لديك أسئلة أو ملاحظات

يمكنك الانتقال إلى صفحة الأسئلة الشائعة والاطّلاع على الأدلة السريعة أو التواصل معنا وإعلامنا برأيك.