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

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

Kết quả

Đầu ra mã cho thấy tin nhắn thoại và tin nhắn văn bản
Hình 1. Đầu ra mã cho thấy tin nhắn âm thanh và văn bản.

Khả năng tương thích với phiên bản

Việc triển khai này yêu cầu bạn đặt minSDK của dự án thành cấp độ API 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 từng 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().
  • Liên kết từng loại nội dung với 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.

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, 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 theo một hình thức bắt mắt và dễ dàng cho người dùng sử dụng.
Tìm hiểu cách các hàm có khả năng kết hợp có thể 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 chúng.

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

Truy cập vào trang câu hỏi thường gặp của chúng tôi để tìm hiểu về các hướng dẫn nhanh hoặc liên hệ với chúng tôi để chia sẻ ý kiến của bạn.