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

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

Sürüm uyumluluğu

Bu uygulama için projenizin minSDK değerinin API düzeyi 21 veya üstü olarak ayarlanması gerekir.

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 bir öğ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

  • items() öğesinde contentType ayarlayarak her öğenin içerik türünü belirtir.
  • Her içerik türünü karşılık gelen bir derlenebilir öğeyle eşler. Örneğin, Audio başka bir yerde tanımlanmış ve bir AudioMessage bileşeniyle eşlenmiş bir contentType öğesidir.
  • Oluşturma, belirli bir içerik türünün her öğesi için oluşturulan derlenebilir öğeleri yeniden kullanır.

Sonuçlar

Sesli ve yazılı mesajları gösteren kod çıkışı
Şekil 1. Sesli ve yazılı mesajları gösteren kod çıkışı.

Bu kılavuzu içeren koleksiyonlar

Bu kılavuz, daha geniş Android geliştirme hedeflerini kapsayan, özel olarak seçilmiş Hızlı Kılavuz koleksiyonlarından biridir:

Listeler ve ızgaralar, uygulamanızın koleksiyonları kullanıcıların kolayca kullanabileceği, görsel açıdan hoş bir biçimde göstermesine olanak tanır.
Birleştirilebilir işlevlerin, Materyal Tasarım tasarım sistemine dayalı güzel kullanıcı arayüzü bileşenleri oluşturmanızı nasıl kolaylaştırabileceğini öğrenin.
Bu video serisinde, çeşitli Compose API'leri tanıtılır ve mevcut API'ler ile bunların nasıl kullanılacağı hızlıca gösterilir.

Sorularınız veya geri bildiriminiz mi var?

Sık sorulan sorular sayfamıza giderek kısa kılavuzlar hakkında bilgi edinebilir veya bize ulaşarak düşüncelerinizi bizimle paylaşabilirsiniz.