Jetpack Compose Glimmer'da GlimmerHorizontalPager, sayfalarını sırayla düzenleyen, yatay olarak kaydırılabilen ve geç oluşturulan bir düzendir.
Bu, Compose Foundation'da bulunan standart HorizontalPager'a benzer ancak Glimmer davranışları ve varsayılan değerlerle Görüntülü Reklam Ağı gözlükleri için özel olarak tasarlanmıştır.
Varsayılan olarak, aynı anda yalnızca bir sayfa belirgin şekilde gösterilir. Sayfalayıcı, kusursuz bir deneyim sunmak için kullanıcı kaydırma hareketi sona erdiğinde sayfanın her zaman tam olarak görünüm alanı sınırlarına yerleşmesini sağlamak üzere yapışma animasyonlarını kullanır.
GlimmerHorizontalPager örneği.Temel parametreler ve düzen seçenekleri
GlimmerHorizontalPager, aralığı, düzen hizalamasını ve geç yüklemeyi kontrol etmek için özelleştirilebilir parametreler sağlar. Bu parametrelerden bazıları şunlardır:
| Parametre | Açıklama |
|---|---|
|
Sayfalayıcının kaydırma konumunu ve etkin sayfasını yöneten, gözlemleyen ve programatik olarak kontrol eden bir |
|
Kırpma işleminden sonra genel içerik sınırlarının etrafına uygulanan dolgu. İlk sayfadan önce veya son sayfadan sonra ön kenar ya da arka kenar dolgusu eklemek için kullanışlıdır. |
|
Sayfa ayırıcıdaki sayfalar arasındaki yatay boşluk. |
|
Etkin sayfa göstergesini oluşturan bir composable yuva. Varsayılan olarak |
|
Ön yükleme optimizasyonu olarak görünür görüntü alanı dışında oluşturulacak ve düzenlenecek sayfa sayısı. Tembel birleştirme verimliliğini korumak için büyük değerler ayarlamaktan kaçının. |
Kullanılabilir tüm parametreler hakkında bilgi için referans belgelerinin tamamını inceleyin.
Animasyonlu metin hareketi önerisi
Ekran gözlüklerindeki sayfa kaydırma animasyonları ve geçişleri sırasında varsayılan metin oluşturma, piksel yapıştırma artefaktları gösterebilir. Ayar
TextMotion.Animated, düzen animasyonları boyunca sorunsuz oluşturma sağlar:
Text( text = "Page: $page", style = LocalTextStyle.current.copy(textMotion = TextMotion.Animated), )
Örnek: Yatay sayfa ayırıcı
Aşağıdaki kodda, her sayfaya bir kart yerleştirerek 10 sayfalık temel bir yatay sayfalayıcının nasıl oluşturulacağı gösterilmektedir:
// Hoist the pager state, specifying the total page count with a lambda. val pagerState = rememberGlimmerPagerState(pageCount = { 10 }) GlimmerHorizontalPager( state = pagerState, modifier = Modifier.fillMaxSize(), ) { page -> // Use Glimmer components like Card and Text for optimized glasses styling. Card(modifier = Modifier.fillMaxWidth()) { Text( text = "Page: $page", // Recommended: use TextMotion.Animated for smooth transitions in a pager. style = LocalTextStyle.current.copy(textMotion = TextMotion.Animated), ) } }
Kodla ilgili önemli noktalar
- State: Sayfalayıcının durumunu yönetmek için
rememberGlimmerPagerState(pageCount = { 10 })kullanarak birGlimmerPagerStatebaşlatır. - Sayfa yuvası içeriği: Her kartı oluşturmak için
GlimmerPagerScopelambda'sında sayfa dizininipagealır. - Sorunsuz animasyon metin stili:
LocalTextStyle.currentöğesini kopyalar veTextMotion.Animatedöğesini açıkça etkinleştirir. - Otomatik sayfa göstergesi: Harici bir gösterge bileşeni gerektiren standart Compose sayfalayıcılarından farklı olarak
GlimmerHorizontalPager, varsayılan olarak nokta stilinde bir sayfa göstergesi otomatik olarak yerleştirir.
Sayfa göstergeleri
Varsayılan olarak GlimmerHorizontalPager, GlimmerHorizontalPagerDefaults.PageIndicator kullanarak nokta tabanlı bir sayfa göstergesi oluşturur. Gösterge, renk şemasını otomatik olarak uyarlar:
- Etkin nokta, en yakın çevredeki
surfaceöğesinden çözümlenen içerik rengini kullanır.
Açık renkleri belirtmek için özelleştirilmiş bir PageIndicator iletebilir veya noktayı kendi özel düzeninizle değiştirebilirsiniz:
GlimmerHorizontalPager( state = pagerState, modifier = Modifier.fillMaxSize(), // Use a page numbers instead of the default dot-indicator pageIndicator = { Text( text = "${pagerState.currentPage + 1} / ${pagerState.pageCount}", style = LocalTextStyle.current.copy(textMotion = TextMotion.Animated), ) } )