با استفاده از چندین نوع آیتم فهرستی بسازید

برای نمایش انواع محتوای ترکیبی مانند متن، تصاویر و عناصر تعاملی می‌توانید از فهرستی با چندین نوع آیتم استفاده کنید.

سازگاری نسخه

این پیاده سازی مستلزم آن است که 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 in items() مشخص می کند.
  • هر نوع محتوا را به یک قابل ترکیب مربوطه نگاشت می کند. به عنوان مثال، Audio یک contentType است که در جای دیگری تعریف شده است و به یک AudioMessage قابل ساخت نگاشت می شود.
  • Compose از کامپوزیشن‌های رندر شده برای هر مورد از یک نوع محتوای معین استفاده مجدد می‌کند.

نتایج

خروجی کد پیام های صوتی و متنی را نشان می دهد
شکل 1. خروجی کد پیام های صوتی و متنی را نشان می دهد.

مجموعه هایی که حاوی این راهنما هستند

این راهنما بخشی از مجموعه‌های راهنمای Quick Guide است که اهداف توسعه Android گسترده‌تری را پوشش می‌دهد:

فهرست‌ها و شبکه‌ها به برنامه شما اجازه می‌دهند مجموعه‌ها را به شکل بصری دلپذیری نمایش دهد که مصرف آن برای کاربران آسان است.
بیاموزید که چگونه توابع ترکیب‌پذیر می‌توانند به شما کمک کنند تا به راحتی اجزای رابط کاربری زیبا را بر اساس سیستم طراحی مواد طراحی کنید.
این سری از ویدیوها APIهای Compose مختلف را معرفی می‌کند و به سرعت به شما نشان می‌دهد که چه چیزی در دسترس است و چگونه از آنها استفاده کنید.

سوال یا بازخورد داشته باشید

به صفحه سوالات متداول ما بروید و درباره راهنماهای سریع بیاموزید یا با ما تماس بگیرید و نظرات خود را با ما در میان بگذارید.