Birden fazla öğe türünü kullanarak liste oluşturma

Metin, resim ve etkileşimli öğeler gibi karma içerik türlerini göstermek için birden fazla öğe türü içeren bir liste kullanabilirsiniz.

Sonuçlar

Ses ve metin mesajlarını gösteren kod çıkışı
Şekil 1. Ses ve metin mesajlarını gösteren kod çıkışı.

Sürüm uyumluluğu

Bu uygulama, projenizin minSDK'sının API düzeyi 21 veya sonraki sürümlere ayarlanmasını gerektirir.

Bağımlılıklar

Birden fazla öğe türü ekleme

Birden fazla öğe türü içeren bir liste veya ızgara oluştururken düzenin her öğesi için içerik türünü belirtebilirsiniz:

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

Kodla ilgili önemli noktalar

  • contentType öğesini items() içinde ayarlayarak her öğenin içerik türünü belirtir.
  • Her içerik türünü karşılık gelen bir composable ile eşler. Örneğin, Audio, başka bir yerde tanımlanan ve AudioMessage composable'ına eşlenen bir contentType'dir.
  • Compose, belirli bir içerik türünün her öğesi için oluşturulan composable'ları yeniden kullanır.

Bu rehberi içeren koleksiyonlar

Bu kılavuz, daha kapsamlı Android geliştirme hedeflerini ele alan aşağıdaki seçilmiş Hızlı Kılavuz koleksiyonlarının bir parçasıdır:

Listeler ve ızgaralar, uygulamanızın koleksiyonları kullanıcıların kolayca tüketebileceği, görsel açıdan hoş bir şekilde göstermesine olanak tanır.
Composable işlevlerin, Materyal Tasarım sistemine dayalı güzel kullanıcı arayüzü bileşenlerini kolayca oluşturmanıza nasıl olanak tanıyabileceğini öğrenin.
Bu video serisinde, çeşitli Compose API'leri tanıtılmakta, kullanabileceğiniz API'ler ve bunların nasıl kullanılacağı hızlıca gösterilmektedir.

Sorularınız veya geri bildiriminiz mi var?

Sık sorulan sorular sayfamıza giderek hızlı kılavuzlar hakkında bilgi edinebilir veya düşüncelerinizi bize iletebilirsiniz.