Tạo danh sách bằng nhiều loại mục

Bạn có thể sử dụng danh sách có nhiều loại mục để hiển thị các loại nội dung hỗn hợp như văn bản, hình ảnh và các phần tử tương tác.

Khả năng tương thích của phiên bản

Phương thức triển khai này yêu cầu bạn phải đặt minSDK của dự án thành API cấp 21 trở lên.

Phần phụ thuộc

Thêm nhiều loại mặt hàng

Bạn có thể chỉ định loại nội dung cho mỗi mục của bố cục khi soạn danh sách hoặc lưới có nhiều loại mục:

@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)

Các điểm chính về mã

  • Chỉ định loại nội dung cho từng mục bằng cách đặt contentType trong items().
  • Ánh xạ từng loại nội dung đến một thành phần kết hợp tương ứng. Ví dụ: Audio là một contentType được xác định ở nơi khác và được liên kết với một thành phần kết hợp AudioMessage.
  • Compose sử dụng lại các thành phần kết hợp đã kết xuất cho từng mục của một loại nội dung nhất định.

Kết quả

Kết quả mã cho thấy tin nhắn âm thanh và văn bản
Hình 1. Kết quả mã hiển thị âm thanh và tin nhắn văn bản.

Các bộ sưu tập chứa hướng dẫn này

Hướng dẫn này là một phần của các bộ sưu tập Hướng dẫn nhanh được tuyển chọn này, bao gồm các mục tiêu phát triển Android rộng hơn:

Danh sách và lưới cho phép ứng dụng của bạn hiển thị các bộ sưu tập ở dạng hình ảnh dễ nhìn và dễ sử dụng cho người dùng.
Tìm hiểu cách các hàm có khả năng kết hợp giúp bạn dễ dàng tạo các thành phần giao diện người dùng đẹp mắt dựa trên hệ thống thiết kế Material Design.
Loạt video này giới thiệu nhiều API Compose, nhanh chóng cho bạn biết những API có sẵn và cách sử dụng các API đó.

Bạn có câu hỏi hoặc ý kiến phản hồi

Hãy truy cập vào trang câu hỏi thường gặp để tìm hiểu về các hướng dẫn nhanh hoặc liên hệ với chúng tôi để cho chúng tôi biết suy nghĩ của bạn.