Jetpack Compose, kullanıcı arayüzü bileşenlerinizi yapılandırmanıza ve düzenlemenize yardımcı olacak çeşitli düzen kapsayıcıları sunar. Row ve Column gibi temel düzen bileşenleri basit düzenlemeleri işlerken, birçok uygulama ekran boyutları değiştikçe ve kullanıcı verileri arttıkça daha duyarlı ve uyarlanabilir kapsayıcı çözümleri gerektirir.
Düzen kapsayıcıları şunları içerir:
- Tembel listeler ve tembel ızgaralar: Yalnızca görüntü alanında görünen öğeleri oluşturup düzenleyerek büyük veya dinamik boyutlu veri kümelerini verimli bir şekilde gösteren
LazyColumn,LazyRowveLazyVerticalGridgibi bileşenler. - Sayfa gezgini: Kullanıcıların içerik sayfaları arasında kaydırma yapmasına olanak tanıyan
HorizontalPagerveVerticalPagergibi kapsayıcılar. - Akış düzenleri: Alan yetersiz olduğunda taşan öğeleri otomatik olarak bir sonraki satıra veya sütuna sığdıran duyarlı tek boyutlu kapsayıcılar (
FlowRowveFlowColumn). - Izgara: Öğeleri, kapsayıcı boyutuna uyum sağlayan çok sütunlu veya çok satırlı düzenlerde gösteren esnek, iki boyutlu bir yapı.
- FlexBox: CSS Flexbox'tan ilham alan, öğelerin kullanılabilir alanı doldurmak için ana ve çapraz eksenler boyunca nasıl sarmalanacağı, büyüyeceği, küçüleceği ve hizalanacağı üzerinde ayrıntılı kontrol sağlayan uyarlanabilir bir kapsayıcıdır.
Doğru düzen kapsayıcısını seçme
Oluşturma'da düzen oluştururken temel ve daha gelişmiş düzen kapsayıcıları arasında seçim yapmak tasarımınıza, alan kısıtlı olduğunda öğelerin sarmalanması gerekip gerekmediğine ve öğelerin dinamik olarak nasıl yeniden boyutlandırıldığına bağlıdır.
Aşağıdaki tabloda, Compose 1D düzen kapsayıcılarının her birinin özellikleri özetlenmiştir:
Kapsayıcı |
Öğeleri yeni satırlara kaydırır |
Öğe başına büyüme |
Öğe başına fire |
Öğe başına başlangıç boyutu |
Öğeler, birden fazla satırdaki kullanılabilir alanı dolduracak şekilde büyür |
Öğeleri yeniden sıralama |
Geç yükleme |
En uygun olduğu durumlar: |
Satır / Sütun |
❌ |
✅ ( |
❌ |
❌ |
❌ |
❌ |
❌ |
|
FlowRow / FlowColumn |
✅ |
Sınırlı |
❌ |
❌ |
Kısmi |
❌ |
❌ |
|
LazyRow / LazyColumn |
❌ |
❌ |
❌ |
❌ |
❌ |
❌ |
✅ |
|
FlexBox |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
|
Aşağıdaki tabloda, Grid ve diğer benzer bileşenlerin özellikleri özetlenmiştir:
Kapsayıcı |
Katı 2D eşleşme |
Öğe yayma (sütunlar) |
Öğe yayma (satırlar) |
Geç yükleme |
En uygun olduğu durumlar: |
Izgara |
✅ |
✅ ( |
✅ |
❌ |
|
LazyVerticalGrid |
✅ |
✅ ( |
❌ |
✅ |
|
LazyStaggeredGrid |
❌ (yalnızca 1D) |
Kısmi (yalnızca tam aralık) |
❌ |
✅ |
|
LazyHorizontalGrid |
✅ |
❌ |
✅ |
✅ |
|
Satır ve sütunları birleştirme |
❌ |
❌ |
❌ |
❌ |
|