สร้างรายการโดยใช้รายการหลายประเภท

คุณสามารถใช้รายการที่มีรายการหลายประเภทเพื่อแสดงเนื้อหาแบบผสม เช่น ข้อความ รูปภาพ และองค์ประกอบแบบอินเทอร์แอกทีฟ

ความเข้ากันได้ของเวอร์ชัน

การใช้งานนี้กำหนดให้โปรเจ็กต์ของคุณตั้งค่า minSDK เป็น API ระดับ 21 ขึ้นไป

ทรัพยากร Dependency

เพิ่มสินค้าหลายประเภท

คุณสามารถระบุประเภทเนื้อหาสำหรับรายการแต่ละรายการของเลย์เอาต์เมื่อเขียนรายการหรือตารางกริดที่มีรายการหลายประเภท ดังนี้

@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
  • คอมโพสิชันจะใช้คอมโพสิเบิลที่ผ่านการจัดการแสดงผลแล้วซ้ำกันสำหรับแต่ละรายการของเนื้อหาประเภทหนึ่งๆ

ผลลัพธ์

เอาต์พุตโค้ดที่แสดงเสียงและ SMS
รูปที่ 1 เอาต์พุตโค้ดที่แสดงเสียงและข้อความ

คอลเล็กชันที่มีคู่มือนี้

คู่มือนี้เป็นส่วนหนึ่งของคอลเล็กชันคู่มือฉบับย่อที่มีการดูแลจัดการ ซึ่งครอบคลุมเป้าหมายการพัฒนา Android ที่กว้างขึ้น ดังนี้

รายการและตารางกริดช่วยให้แอปแสดงคอลเล็กชันในรูปแบบที่ดึงดูดสายตาและใช้งานง่ายสำหรับผู้ใช้
ดูวิธีที่ฟังก์ชันคอมโพสิเบิลช่วยให้คุณสร้างคอมโพเนนต์ UI ที่สวยสะดุดตาตามระบบการออกแบบ Material Design ได้อย่างง่ายดาย
ชุดวิดีโอนี้จะแนะนำ Compose API ต่างๆ โดยแสดงสิ่งที่มีให้ใช้งานและวิธีใช้อย่างรวดเร็ว

หากมีคำถามหรือความคิดเห็น

ไปที่หน้าคำถามที่พบบ่อยเพื่อดูคู่มือฉบับย่อหรือติดต่อเราเพื่อบอกความคิดเห็นของคุณ