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

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

نتایج

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

سازگاری نسخه

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

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

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

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

سوالی یا بازخوردی دارید؟

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