GörünümSayfası2
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
14 Mayıs 2024 | 1.1.0 | - | - | - |
AndroidX Bağımlılıkları
ViewPager2
kullanmak için aşağıdaki AndroidX bağımlılığını projenizin build.gradle
dosyasına ekleyin:
Eski
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.1.0
Sürüm 1.1.0
14 Mayıs 2024
androidx.viewpager2:viewpager2:1.1.0
yayınlandı. 1.1.0 sürümü bu kayıtları içerir.
1.0.0'dan sonraki önemli değişiklikler
- RecyclerView
1.3.1-rc01
veya sonraki bir sürümle kullanıldığında kilitlenme sorunu düzeltildi. ViewPager2
, RecyclerView1.2.0-alpha02
ve sonraki sürümlerin artık varsayılan olarak doldurmadığıCollectionInfo
veCollectionItemInfo
değerlerini doğru şekilde dolduruyor.FragmentStateAdapter
içinde gerçekleşen parça yaşam döngüsü değişikliklerini dinlemek içinFragmentTransactionCallback
arayüzü eklendi.FragmentManager
öğesine parça eklerken ilk parça menüsü görünürlüğüyle ilgiliFragmentStateAdapter
sorunu düzeltildi.- Pencere eklerinin dağıtılması düzeltildi: tüm sayfalar artık aynı iç kümeleri alıyor.
WindowInsets
API'lerinin eşdüzey görünümlere sunulmasını engelleyebilen eski API sürümlerinde (< API 30) dağıtıldığı için, içi öğeleri API 30 veya daha az cihaza uygulamak istersenizWindowInsetsApplier.install(viewPager2)
aracılığıyla bu düzeltmeyi etkinleştirmeniz gerekir.
Sürüm 1.1.0-rc01
1 Mayıs 2024
androidx.viewpager2:viewpager2:1.1.0-rc01
, 1.1.0-beta02 sürümünden bu yana dikkate değer bir değişiklik olmadan yayınlanmıştır. 1.1.0-rc01 sürümü bu kayıtları içerir.
Sürüm 1.1.0-beta02
24 Mayıs 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
FragmentTransactionCallback
öğesine, Parça durumu kaydetme geri çağırmaları eklendi. (I45b90)ViewPager2
artık eski API sürümlerinin bozukWindowInsets
dağıtımı sorununu (< 30) düzeltmeye çalışmaz. Bunun nedeni, düzeltmenin kendisiViewPager2
hizmetinin kardeşlerine zarar verebilir. Bu düzeltme hâlâ kullanılabilir durumda olsa da geliştiricilerin durum bazında karar verebilmesi için artık isteğe bağlı bir çözüm haline gelmiştir.WindowInsetsApplier.install(viewPager2))
yöntemini çağırarak düzeltmeyi etkinleştirin. (Ic9a85)
Hata Düzeltmeleri
RecyclerView
uygulamasının daha yeni sürümleriyle uyumluluk sorunlarını düzeltin. BuViewPager2
sürümünü kullananlar en azRecyclerView
1.3.1-rc01 sürümüne güncelleme yapmalıdır.
Sürüm 1.1.0-beta01
4 Ağustos 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
Androidx'i Kotlin 1.4 sürümünü kullanacak şekilde yeni sürüme geçirin (Id6471, b/165307851, b/165300826)
Tüm androidx kitaplıkları için Java 8'i hedeflemeye geçiş yapın (2923f39)
Hata Düzeltmeleri
- Pencere eklerinin dağıtılması düzeltildi. Artık tüm sayfalar aynı insetleri alıyor. (I47fef)
Sürüm 1.1.0-alpha01
1 Nisan 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
Bu sürüm, RecyclerView 1.2.0-alpha02'de CollectionInfo
ve CollectionItemInfo
doldurularak yapılan ve RecyclerView
tarafından artık varsayılan olarak sağlanmayan bir değişikliğe eşlik eder. RecyclerView 1.2.0-alpha02
sürümüne güncelleme yaparken, Erişilebilirlik gerilemelerini önlemek için ViewPager2
politikasını da güncelleyin.
Yeni Özellikler
FragmentStateAdapter
içinde gerçekleşen parça yaşam döngüsü değişikliklerini dinlemek içinFragmentTransactionCallback
arayüzü eklendi. (İbda77)
Hata Düzeltmeleri
FragmentManager
öğesine parça eklerken ilk parça menüsü görünürlüğüyle ilgiliFragmentStateAdapter
sorunu düzeltildi. (I9d2ff, b/144442240)
Sürüm 1.0.0
Sürüm 1.0.0
20 Kasım 2019
androidx.viewpager2:viewpager2:1.0.0
, 1.0.0-rc01 sürümünden herhangi bir değişiklik yapılmadan yayınlandı. Sürüm 1.0.0 bu kayıtları içerir.
1.0.0'ın temel özellikleri
- Önceki ViewPager uygulamasından elde edilen iyileştirmeler:
- RTL (sağdan sola) düzen desteği
- Dikey yön desteği
- Güvenilir
Fragment
desteği (temelFragment
koleksiyonunda yapılan değişikliklerin işlenmesi dahil) - Veri kümesi değişiklik animasyonları (
DiffUtil
desteği dahil)
- Önceki
ViewPager
uygulamasından kolay geçiş (mümkün olduğunda API eşdeğeri). Taşıma kılavuzuna ve örnek uygulamaya bakın.
Parçalar arasında geçiş yapmak için ViewPager2'yi kullanma hakkındaki kılavuza bakın.
Sürüm 1.0.0-rc01
23 Ekim 2019
androidx.viewpager2:viewpager2:1.0.0-rc01
, 1.0.0-beta05
tarihinden bu yana herhangi bir değişiklik olmadan yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.
Sürüm 1.0.0-beta05
9 Ekim 2019
androidx.viewpager2:viewpager2:1.0.0-beta05
yayınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.
Hata düzeltmeleri
- Ekran dışındaki bir sayfada, sayfa değişikliğine neden olan
requestFocus
sorunu düzeltildi. Bu davranış artık orijinal ViewPager ile tutarlıdır. (b/140656866) - Sayfa değişikliğinden sonra ekran dışındaki bir sayfada kalan
focus
için düzeltme yapıldı. Artık sayfa değiştirilirken odak temizlenir. (b/140656866) - Sayfa değiştirilirken
Fragment
işlemleri duraklatma / devam ettirme siparişi için düzeltme uygulandı (artık yeni birincil öğeyi devam ettirmeden önce her zaman eski birincil öğeyi duraklatıyoruz). (b/139489059) canScrollHorizontally(int)
vecanScrollVertically(int)
için düzeltme: Artık ViewPager2'nin belirtilen yönde kaydırılıp kaydırılamayacağı döndürülüyor. (b/141848404)- SwiperefreshLayout'ta yaşanan bir sorun, ViewPager2 ile daha iyi çalışacak şekilde düzeltildi.
Sürüm 1.0.0-beta04
5 Eylül 2019
androidx.viewpager2:viewpager2:1.0.0-beta04
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
Fragment
arka yığınıyla ilgiliFragmentStateAdapter
uç kılıf sorunu için düzeltme yapıldı. (b/139095195)- Belirli özellik yapılandırmalarında yazma/odaklamada kaydırma/sayfa atlamasına neden olan
EditText
sorunu düzeltildi. (b/138044582, b/139432498) ItemDecoration
örnekleriyle ilgili bir sorun ve fazla kaydırma göstergesinin konumlandırılması için geçici bir çözüm düzeltildi. (b/139012032)ViewPager2
ile daha iyi çalışacak diğer bileşenlerde bazı sorunlar düzeltilmiştir: RecyclerView, NestedScrollView ve Gezinme.
Sürüm 1.0.0-beta03
7 Ağustos 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- Geçici
Fragment
durumuyla ilgiliFragmentStateAdapter
sorunu düzeltildi. b/134246546 - Bir veri kümesi, yumuşak kaydırma sırasında değiştirildiğinde
currentItem
vescrollState
sorunlarına yönelik düzeltme (uç durumlara yönelik). b/137642608 - Veri kümesi değişiklik animasyonlarıyla çakışan
PageTransformer
(MarginPageTransformer
dahil) animasyonları için düzeltme yapıldı. b/134658996 - Büyük veri kümelerinde yumuşak kaydırma animasyonları için düzeltme (
float
tam sayı değer sınırı). b/134858960
Sürüm 1.0.0-beta02
19 Temmuz 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
1.0.0-beta01
ayında kullanıma sunulan istenmeyen jakoko bağımlılığı kaldırıldı. (b/137782951)
Sürüm 1.0.0-beta01
17 Temmuz 2019
androidx.viewpager2:viewpager2:1.0.0-beta01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- Veri kümesi kaydırılıp güncellenirken
ViewPager2.updateCurrentItem
kilitlenmesi için düzeltme ViewPager2.isLayoutRtl
ile ilgiliNullPointerException
kilitlenme için düzeltmeTOUCH_SLOP_PAGING
artık varsayılan bir dokunma eğimi- Boş bağdaştırıcılar için
OnPageChangeCallback
etkinlik düzeltildi (ViewPager1
ile benzerlik için-1
yerine0
. sayfa)
Bilinen sorunlar
- Mevcut ürün sürümüne geçmeden önce kalan açık sorunlar üzerinde çalışmaya devam ediyoruz
Sürüm 1.0.0-alpha06
2 Temmuz 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Bu, API'yi dondurup beta sürümüne geçmeden önce yapmayı planladığımız son alfa sürümüdür. Lütfen bize API geri bildirimi gönderin.
Yeni özellikler
- Erişilebilirliğin iyileştirilmesinin temelleri:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
vb.
API değişiklikleri
FragmentStateAdapter
: Birincil olmayanFragment
öğeleriSTARTED
ile sınırlanmış vemenuVisibility
değerleri yanlış olarak ayarlanmıştır.PageTransformer
,MarginPageTransformer
,CompositePageTransformer
: dokümanlarposition
düzeltildi.
Hata düzeltmeleri
- Veri kümesi değişikliği / bağdaştırıcı değişikliği düzeltildikten sonra
currentItem
. offscreenPageLimit
sorunu olanMarginPageTransformer
düzeltildi.FakeDrag
davranışı sırasında erişilebilirlik işlemleri düzeltildi.
Sürüm 1.0.0-alpha05
5 Haziran 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
ItemDecorator
,RecyclerView
ile tutarlı bir davranışla kullanıma sunuldu.- Sayfalar arasında boşluk oluşturma olanağı sağlamak için
MarginPageTransformer
kullanıma sunuldu (sayfa metninin dışında). - Birden fazla
PageTransformer
özelliğini birleştirme olanağı sağlamak içinCompositePageTransformer
kullanıma sunuldu.
API değişiklikleri
FragmentStateAdapter#getItem
yöntemiFragmentStateAdapter#createFragment
olarak yeniden adlandırıldı. Önceki yöntem adının geçmişte hatalara neden olduğu kanıtlandı.0
olanOFFSCREEN_PAGE_LIMIT_DEFAULT
değeri-1
olarak değiştirildi.OFFSCREEN_PAGE_LIMIT_DEFAULT
sabit değeri kullanılırsa istemci kodu değişikliğine gerek yoktur.
Hata düzeltmeleri
SCROLL_STATE_SETTLING
ters yönde bir sürükleme nedeniyle kesintiye uğradığındagetCurrentItem()
davranışı düzeltildi.- "Etkinlikleri saklama" bağlamında
FragmentStateAdapter
sınıf yükleyici sorunu giderildi. setOffscreenPageLimit
doküman iyileştirildi.
Sürüm 1.0.0-alpha04
7 Mayıs 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
offscreenPageLimit
: Görünüm hiyerarşisinde tutulanView
/Fragment
sayfa sayısının sıkı bir şekilde kontrol edilmesini sağlar
API değişiklikleri
orientation
veisUserScrollable
özellikleri artıkSavedState
ürününün bir parçası değilsaveState
verestoreState
yöntemleriFragmentStateAdapter
içinde sonlandıViewPager2.Orientation
veViewPager2.ScrollState
ek açıklaması herkese açık hale getirilmedi
Hata düzeltmeleri
SavedState
:Activity
kaldırıldığında / yeniden oluşturulduğunda geri yüklemeyle ilgili bir sorun düzeltildiSavedState
: bağdaştırıcı ayarlanana kadar geri yükleme gecikiyorOnPageChangeCallback
: Küçük sıra dışı durumlar düzeltildi
Sürüm 1.0.0-alpha03
3 Nisan 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- ViewPager2'yi programlı bir şekilde kaydırma yeteneği:
fakeDragBy(offsetPx)
.
API değişiklikleri
FragmentStateAdapter
için artık birLifecycle
nesnesi gerekiyor.FragmentActivity
ana makinesinden veyaFragment
ana makinesinden almak için iki yardımcı program oluşturucu eklendi.
Hata düzeltmeleri
- Çok sayıda
Fragment
destek düzeltmesi:- küçültülürken veya ekran rotasyonu sırasında veri kümesi güncellemelerini işleme;
- rotasyondan sonra alakasız Parçaları kaldırma;
- kaldırılan öğelerin kayıtlı durumu kaldırılıyor.
PageChangeCallback
: Kenar boşlukları olan sayfalar için sabit sayfa ofseti hesaplaması.
Sürüm 1.0.0-alpha02
13 Mart 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02
yayınlandı. Bu sürümdeki kaydetmelerin tam listesini burada bulabilirsiniz.
Yeni özellikler
- Kullanıcı girişini devre dışı bırakma özelliği (
setUserInputEnabled
,isUserInputEnabled
)
API değişiklikleri
- ViewPager2 sınıfı finali
Hata düzeltmeleri
FragmentStateAdapter
kararlılık düzeltmesi
Sürüm 1.0.0-alpha01
7 Şubat 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01
yayınlandı. Bu, ViewPager2'nin ilk sürümüdür.
Yeni özellikler
- Önceki sürümü
android.support.v4.view.ViewPager
(VP1) ile karşılaştırıldığında:- Sağdan sola (RTL) düzen desteği
- Dikey yön desteği
notifyDataSetChanged
tamamen işlevsel (VP1 hataları ele alındı)
API değişiklikleri
FragmentStateAdapter
,FragmentStatePagerAdapter
yerine geçmişRecyclerView.Adapter
,PagerAdapter
yerine geçmişregisterOnPageChangeCallback
,addPageChangeListener
yerine geçmiş
Bilinen sorunlar
- klip-Dolgu
- fakeDrag yok
- JavaDoc
- yöne paralel iç içe kaydırma
- ekran dışı sınır denetimi yok
- Daha iyi TabLayout entegrasyonuna ihtiyaç duyar
- pageGenişlik ayarlayıcı yok (zorunlu %100/%100)
- sayfa dönüştürücü: donanım/yazılım katmanı seçimi yok; ters çizim sırası yok
- geçerli öğenin öncesine bir sayfa eklerken geçerli öğeyi görünür tut
- klavyeyle gezinme için çalışma gerekiyor
FragmentStateAdapter
kararlılık / performans iyileştirmesi geliyor