GörünümSayfası2
Son Güncelleme | Kararlı Sürüm | Sürüm 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 projenizin build.gradle
dosyasına aşağıdaki AndroidX bağımlılığını ekleyin:
Eski
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.1.0
1.1.0 sürümü
14 Mayıs 2024
androidx.viewpager2:viewpager2:1.1.0
yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
- RecyclerView
1.3.1-rc01
veya daha yeni sürümlerle kullanıldığında kilitlenme sorunu düzeltildi. ViewPager2
artık RecyclerView1.2.0-alpha02
ve sonraki sürümlerin varsayılan olarak doldurmadığıCollectionInfo
veCollectionItemInfo
öğelerini 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
'a bir parça eklenirken ilk parça menüsünün görünürlüğüyle ilgiliFragmentStateAdapter
sorunu düzeltildi.- Pencere içe eklemelerinin dağıtımı düzeltildi: Artık tüm sayfalar aynı içe eklemeleri alıyor.
WindowInsets
ürününün, eklerin eşdüzey görünümlerde kullanılabilmesini engelleyebilen eski API sürümlerinde (< API 30) nasıl dağıtıldığı nedeniyle < API 30 cihazlara ek eklemek istiyorsanızWindowInsetsApplier.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 önemli bir değişiklik içermeden yayınlanmıştır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.1.0-beta02
24 Mayıs 2023
androidx.viewpager2:viewpager2:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Geri çağırmaları
FragmentTransactionCallback
öğesine kaydeden Parça durumu eklendi. (I45b90) - Düzeltmenin kendisi
ViewPager2
ürününün kardeşleri için zararlı olabileceği içinViewPager2
artık eski API sürümlerinin bozukWindowInsets
dağıtımını düzeltmeye çalışmıyor. Düzeltme hâlâ kullanılabilir durumdadır ancak geliştiricilerin duruma göre karar vermesi için etkinleştirilmesi gerekir.WindowInsetsApplier.install(viewPager2))
numaralı telefonu arayarak düzeltmeyi etkinleştirin. (Ic9a85)
Hata Düzeltmeleri
RecyclerView
'ün yeni sürümleriyle ilgili uyumluluk sorunlarını düzeltin. BuViewPager2
sürümünün kullanıcıları, 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ınlanır. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
androidx'i Kotlin 1.4'ü kullanacak şekilde yükseltme (Id6471, b/165307851, b/165300826)
Tüm androidx kitaplıkları için Java 8'i hedeflemeye geçiş (2923f39)
Hata Düzeltmeleri
- Pencere içe eklemelerinin dağıtımı düzeltildi. Artık tüm sayfalar aynı içe eklemeleri alıyor. (I47fef)
Sürüm 1.1.0-alpha01
1 Nisan 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01
yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
Bu sürüm, RecyclerView
'in artık varsayılan olarak sağlamadığı CollectionInfo
ve CollectionItemInfo
öğelerini doldurarak RecyclerView 1.2.0-alpha02'de bir değişiklikle birlikte sunulur. Erişilebilirlik gerilemelerini önlemek için RecyclerView 1.2.0-alpha02
sürümüne geçerken ViewPager2
sürümünü de 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. (Ibda77)
Hata Düzeltmeleri
FragmentManager
'a bir parça eklenirken ilk parça menüsünün 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'den itibaren herhangi bir değişiklik içermeden yayınlanmıştır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
- Önceki ViewPager uygulamasında yapılan iyileştirmeler:
- Sağdan sola düzen desteği
- Dikey yön desteği
- Güvenilir
Fragment
desteği (temelFragment
koleksiyonundaki değişikliklerin ele alınması dahil) - Veri kümesi değişiklik animasyonları (
DiffUtil
desteği dahil)
- Önceki
ViewPager
uygulamasından kolayca geçiş (mümkün olduğunda API eşleşmesi). Taşıma kılavuzuna ve örnek uygulamaya bakın.
Parçalar arasında kaydırma yapmak için ViewPager2 kullanma ile ilgili 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 içermeden yayınlandı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.
Sürüm 1.0.0-beta05
9 Ekim 2019
androidx.viewpager2:viewpager2:1.0.0-beta05
yayınlanır. Sürüm 1.0.0-beta05 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Sayfa değişikliğine neden olan ekran dışı bir sayfada bulunan
requestFocus
sorunu düzeltildi. Davranış artık orijinal ViewPager ile tutarlı. (b/140656866) - Sayfa değişikliğinden sonra ekran dışı bir sayfada kalan
focus
için düzeltme yapıldı. Sayfa değiştirilirken artık odak temizlenir. (b/140656866) - Sayfayı değiştirirken
Fragment
duraklatma / devam ettirme işlemlerinin sıralanması için düzeltme (artık yenisine devam etmeden önce her zaman eski birincil öğeyi duraklatıyoruz). (b/139489059) canScrollHorizontally(int)
vecanScrollVertically(int)
için düzeltme yapıldı. Artık ViewPager2'nin belirtilen yönde kaydırılıp kaydırılamayacağı döndürülüyor. (b/141848404)- SwipeRefreshLayout'taki 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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
Fragment
geri yığınıyla ilgiliFragmentStateAdapter
uç durum sorunu düzeltildi. (b/139095195)- Yazarken/odaklandığında kaydırma/sayfa atlamasına neden olan belirli özellik yapılandırmalarına sahip
EditText
için düzeltme. (b/138044582, b/139432498) ItemDecoration
örnekleri ile ilgili bir sorun için düzeltme ve kaydırma çubuğu konumlandırması için geçici çözüm. (b/139012032)- Diğer bileşenlerde
ViewPager2
ile daha iyi çalışacak şekilde bir dizi sorun düzeltildi: RecyclerView, NestedScrollView ve Navigation.
Sürüm 1.0.0-beta03
7 Ağustos 2019
androidx.viewpager2:viewpager2:1.0.0-beta03
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
- Geçici
Fragment
durumuyla ilgiliFragmentStateAdapter
sorunu için düzeltme. b/134246546 - Sorunsuz kaydırma sırasında bir veri kümesi değiştirildiğinde
currentItem
vescrollState
sorunları için düzeltme (uç durumlar ele alındı). b/137642608 - Veri kümesi değişikliği animasyonlarıyla çakışan
PageTransformer
(MarginPageTransformer
dahil) animasyonlarıyla ilgili düzeltme. b/134658996 - Büyük veri kümelerinde sorunsuz kaydırma animasyonları (
float
tam sayı değeri sınırı) için düzeltme. b/134858960
Sürüm 1.0.0-beta02
19 Temmuz 2019
androidx.viewpager2:viewpager2:1.0.0-beta02
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
1.0.0-beta01
sürümünde yanlışlıkla eklenen jacoco 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ınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Hata düzeltmeleri
- Veri kümesini kaydırırken ve güncellerken
ViewPager2.updateCurrentItem
kilitlenme sorununu düzeltme ViewPager2.isLayoutRtl
ile ilgiliNullPointerException
kilitlenme sorununu düzeltmeTOUCH_SLOP_PAGING
artık varsayılan dokunma kayması- Boş bağdaştırıcılar için
OnPageChangeCallback
etkinlikleri düzeltildi (ViewPager1
ile eşleşme için-1
yerine0
sayfası)
Bilinen sorunlar
- Kararlı sürüme geçmeden önce açık kalan sorunlar üzerinde çalışmaya devam ediyoruz.
Sürüm 1.0.0-alpha06
2 Temmuz 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Bu, API'yi dondurmadan ve beta sürümüne geçmeden önce gerçekleştirmeyi planladığımız son alfa sürümü. Lütfen bize API ile ilgili geri bildirimde bulunun.
Yeni özellikler
- Geliştirilmiş Erişilebilirlik için Temel Bilgiler:
ACTION_PAGE_RIGHT
,ACTION_PAGE_DOWN
vb.
API değişiklikleri
FragmentStateAdapter
: Birincil olmayanFragment
öğeleriSTARTED
ile sınırlanmış,menuVisibility
değerleri ise yanlış olarak ayarlanmıştır.PageTransformer
,MarginPageTransformer
,CompositePageTransformer
:position
düzeltildi ile ilgili dokümanlar.
Hata düzeltmeleri
- Veri kümesi değişikliği / adaptör değişikliği düzeltildikten sonra
currentItem
. offscreenPageLimit
sorunun bulunduğuMarginPageTransformer
düzeltildi.FakeDrag
davranışındaki erişilebilirlik işlemleri düzeltildi.
Sürüm 1.0.0-alpha05
5 Haziran 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Yeni özellikler
ItemDecorator
,RecyclerView
ile tutarlı bir davranışla ortaya çıktı.MarginPageTransformer
, sayfalar arasında boşluk oluşturma (sayfa içi dışında) özelliğini sunmak için kullanıma sunulmuştur.CompositePageTransformer
, birden fazlaPageTransformer
'ı birleştirme olanağı sunmak için kullanıma sunulmuştur.
API değişiklikleri
FragmentStateAdapter#getItem
yöntemiFragmentStateAdapter#createFragment
olarak yeniden adlandırıldı. Önceki yöntem adının geçmişte hata kaynağı olduğu kanıtlandı.OFFSCREEN_PAGE_LIMIT_DEFAULT
değeri0
yerine-1
olarak değiştirildi.OFFSCREEN_PAGE_LIMIT_DEFAULT
sabitinin kullanılması durumunda istemci kodunda değişiklik yapılmasına gerek yoktur.
Hata düzeltmeleri
SCROLL_STATE_SETTLING
ters yönde bir sürükleme nedeniyle kesintiye uğradığındagetCurrentItem()
davranışı düzeltildi.- "Etkinlikleri saklamayın" bağlamında ele alınan
FragmentStateAdapter
sınıf yükleyici sorunları. setOffscreenPageLimit
dokümanları iyileştirildi.
Sürüm 1.0.0-alpha04
7 Mayıs 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Yeni özellikler
offscreenPageLimit
: Görünüm hiyerarşisinde tutulan sayfaView
/Fragment
sayısının sıkı bir şekilde kontrol edilmesini sağlar
API değişiklikleri
orientation
veisUserScrollable
özellikleri artıkSavedState
'nin bir parçası değilsaveState
verestoreState
yöntemleriFragmentStateAdapter
tarihinde kesinleştiViewPager2.Orientation
veViewPager2.ScrollState
notları herkese açık olmaktan çıkarıldı
Hata düzeltmeleri
SavedState
:Activity
silindiğinde / yeniden oluşturulduğunda geri yüklemeyle ilgili bir sorun düzeltildiSavedState
: Adaptör ayarlanana kadar geri yükleme işlemi geciktiOnPageChangeCallback
: Önemsiz uç durumlar düzeltildi
Sürüm 1.0.0-alpha03
3 Nisan 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03
yayınlanır. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.
Yeni özellikler
- ViewPager2'yi programatik olarak kaydırma özelliği:
fakeDragBy(offsetPx)
.
API değişiklikleri
FragmentStateAdapter
için artık birLifecycle
nesnesi gereklidir.FragmentActivity
ana makinesinden veyaFragment
ana makinesinden almak için iki yardımcı program oluşturucu eklendi.
Hata düzeltmeleri
- Çok sayıda
Fragment
desteğiyle ilgili düzeltme:- Veri kümesi güncellemelerini en aza indirilmiş durumdayken veya ekran döndürülürken işleme;
- Döndürme işleminden sonra alakasız parçaları kaldırma;
- Kaldırılan öğelerin kayıtlı durumunu kaldırma
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ınlanır. Bu sürüme dahil edilen taahhütlerin 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ı nihai
Hata düzeltmeleri
FragmentStateAdapter
kararlılık düzeltmeleri
Sürüm 1.0.0-alpha01
7 Şubat 2019
androidx.viewpager2:viewpager2 1.0.0-alpha01
yayınlanır. 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ırma:- Sağdan sola (RTL) düzen desteği
- Dikey yön desteği
notifyDataSetChanged
tamamen işlevsel (VP1 hataları giderildi)
API değişiklikleri
FragmentStateAdapter
,FragmentStatePagerAdapter
yerine geçerRecyclerView.Adapter
,PagerAdapter
yerine geçerregisterOnPageChangeCallback
,addPageChangeListener
yerine geçer
Bilinen sorunlar
- clipToPadding
- no fakeDrag
- JavaDokümanı
- Yöne paralel iç içe kaydırma
- Ekran dışı sınır denetimi yok
- daha iyi TabLayout entegrasyonu gerekiyor
- sayfa Genişliği belirleyici yok (%100/%100 zorunlu)
- sayfa dönüştürücü: donanım/yazılım katmanı seçimi yok; ters çizim sırası yok
- Mevcut öğeden önce bir sayfa eklerken mevcut öğeyi görünür tutma
- klavyeyle gezinmeyle ilgili işlem yapmanız gerekiyor
FragmentStateAdapter
kararlılık / performans iyileştirmeleri yolda