Verileri kademeli olarak yükleyerek ve görüntüleyerek uygulamanızda sonsuz listeler de dahil olmak üzere büyük öğe listelerini desteklemek için yavaş yükleme ve sayfalama özelliklerinden yararlanabilirsiniz. Bu teknik, ilk yükleme sürelerini kısaltmanıza ve bellek kullanımını optimize ederek performansı artırmanıza olanak tanır.
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
Sayfaya bölünmüş içerik görüntüleme
Sayfalama kitaplığıyla, yerel depolama alanından veya ağ üzerinden edinilen daha büyük bir veri kümesinden veri sayfaları yükleyip görüntüleyebilirsiniz. Kullanıcıya daha fazla veri getirildiğini belirtmek için ilerleme çubuğu gösteren sayfalandırılmış bir liste görüntülemek üzere aşağıdaki kodu kullanın:
@Composable fun MessageList( modifier: Modifier, pager: Pager<Int, Message> ) { val lazyPagingItems = pager.flow.collectAsLazyPagingItems() LazyColumn { items( lazyPagingItems.itemCount, key = lazyPagingItems.itemKey { it.id } ) { index -> val message = lazyPagingItems[index] if (message != null) { MessageRow(message) } else { MessagePlaceholder() } } } @Composable fun MessagePlaceholder(modifier: Modifier) { Box( Modifier .fillMaxWidth() .height(48.dp) ) { CircularProgressIndicator() } } @Composable fun MessageRow( modifier: Modifier, message: Message ) { Card(modifier = Modifier.padding(8.dp)) { Column( modifier = Modifier.padding(8.dp), verticalArrangement = Arrangement.Center ) { Text(message.sender) Text(message.text) } } } }
Kodla ilgili önemli noktalar
LazyColumn
: Bu bileşen, büyük bir öğe listesini (iletiler) verimli bir şekilde görüntülemek için kullanılır. Yalnızca ekranda görünen öğeleri oluşturur ve böylece kaynak ve bellek tasarrufu sağlar.lazyPagingItems
nesnesi,LazyColumn
içindeki sayfalı verilerin yüklenmesini ve sunulmasını verimli bir şekilde yönetir.LazyPagingItems
değeriniLazyColumn
bileşenindeitems
'ye iletir.MessageRow(message: Text)
, tek tek ileti öğelerini oluşturmaktan sorumludur. Muhtemelen bir kart içinde iletiyi gönderen kişiyi ve ileti metnini gösterir.MessagePlaceholder()
, gerçek mesaj verileri getirilirken görsel bir yer tutucu (yükleniyor simgesi) sağlayarak kullanıcı deneyimini iyileştirir.
Sonuçlar
Aşağıdaki videoda, kullanıcı sayfayı kaydırırken büyük bir listenin veri getirmesi sonucunda ortaya çıkan davranış gösterilmektedir.
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: