여러 항목 유형을 사용하여 목록 만들기

여러 항목 유형이 있는 목록을 사용하여 텍스트, 이미지, 대화형 요소와 같은 혼합 콘텐츠 유형을 표시할 수 있습니다.

결과

오디오 및 텍스트 메시지를 보여주는 코드 출력
그림 1. 오디오 및 텍스트 메시지를 보여주는 코드 출력

버전 호환성

이 구현에서는 프로젝트 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)

코드 관련 핵심 사항

  • items()에서 contentType을 설정하여 각 항목의 콘텐츠 유형을 지정합니다.
  • 각 콘텐츠 유형을 상응하는 컴포저블에 매핑합니다. 예를 들어 Audio 는 다른 곳에서 정의되고 contentType에 매핑되는 AudioMessage 컴포저블입니다.
  • Compose는 지정된 콘텐츠 유형의 각 항목에 대해 렌더링된 컴포저블을 재사용합니다.

이 가이드가 포함된 컬렉션

이 가이드는 더 광범위한 Android 개발 목표를 다루는 선별된 빠른 시작 가이드 컬렉션에 포함되어 있습니다.

목록과 그리드를 사용하면 앱에서 사용자가 쉽게 사용할 수 있는 시각적으로 보기 좋은 형식으로 컬렉션을 표시할 수 있습니다.
컴포저블 함수를 사용하면 Material Design 디자인 시스템을 기반으로 아름다운 UI 구성요소를 쉽게 만들 수 있습니다.
이 동영상 시리즈에서는 다양한 Compose API를 소개하고 사용 가능한 API와 사용 방법을 빠르게 보여줍니다.

궁금한 점이나 의견이 있으신가요?

자주 묻는 질문 페이지로 이동하여 빠른 시작 가이드에 관해 알아보거나 Google에 문의하여 의견을 알려주세요.