SayfaSayfası2
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
24 Mayıs 2023 | 1.0.0 | - | 1.1.0-beta02 | - |
AndroidX Bağımlılıkları
ViewPager2
uygulamasını kullanmak için projenizin build.gradle
dosyasına aşağıdaki AndroidX bağımlılığını ekleyin:
Modern
dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.0.0") }
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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-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)- Düzeltmenin kendisi
ViewPager2
ürününün kardeşlerine zarar verebileceğindenViewPager2
artık eski API sürümlerinin bozukWindowInsets
dağıtımı sorununu düzeltmeye çalışmıyor (< 30). Düzeltme hâlâ kullanılabilir ancak artık geliştiriciler tarafından tek tek karar verilebilmesi için 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
- Daha yeni
RecyclerView
sürümleriyle 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üncellemelidir.
Sürüm 1.1.0-beta01
4 Ağustos 2021
androidx.viewpager2:viewpager2:1.1.0-beta01
yayınlandı. Sürüm 1.1.0-beta01 bu kayıtları içerir.
API Değişiklikleri
Kotlin 1.4'ü kullanmak için Androidx'i yükseltin (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. Tüm sayfalar artık aynı iç setleri 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, CollectionInfo
ve CollectionItemInfo
doldurularak RecyclerView 1.2.0-alpha02 sürümünde 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. (Ibda77)
Hata Düzeltmeleri
FragmentManager
öğesine bir parça eklenirken başlangıç 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 olmadan 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şikliği 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 göz atı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 hiçbir değişiklik olmadan yayınlandı. Sürüm 1.0.0-rc01 bu kayıtları içerir.
Sürüm 1.0.0-beta05
9 Ekim 2019
androidx.viewpager2:viewpager2:1.0.0-beta05
yayınlandı. Sürüm 1.0.0-beta05 bu kayıtları içerir.
Hata düzeltmeleri
- Sayfa değişikliğine neden olan ekran dışındaki bir sayfadaki
requestFocus
için düzeltme yapıldı. 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 uygulandı. Artık sayfa değiştirilirken odak temizleniyor. (b/140656866) - Sayfa değiştirilirken
Fragment
işlemlerinin duraklatılması / devam ettirilmesi için verilen sipariş düzeltmesi düzeltildi (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ğı gösteriliyor. (b/141848404)- ViewPager2 ile daha iyi çalışacak şekilde SClearrefreshLayout'ta yaşanan bir sorun 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 düzeltildi. (b/139095195)- Belirli özellik yapılandırmalarında, yazma/odaklama sırasında kaydırmaya/sayfada atlamaya neden olan
EditText
sorunu düzeltildi. (b/138044582, b/139432498) ItemDecoration
örnekleriyle ilgili bir sorun ve fazla kaydırma göstergesinin konumlandırması için bir geçici çözüm düzeltildi. (b/139012032)ViewPager2
ile daha iyi çalışacak diğer bileşenlerde bazı sorunlar giderildi: 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 - Kesintisiz kaydırma sırasında bir veri kümesi değiştirildiğinde
currentItem
vescrollState
sorunları için düzeltme yapıldı (Sınır destek kayıtları ele alınır). 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 yapıldı (
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
tarihinde ortaya çıkan 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
kilitlenme için düzeltildi 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
etkinlikleri 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'ya geçmeden önce yapmayı planladığımız son alfa denemesidir. Lütfen bize API ile ilgili geri bildirimde bulunun.
Yeni özellikler
- Erişilebilirlikle ilgili temel bilgiler:
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
sorunun bulunduğuMarginPageTransformer
düzeltildi.FakeDrag
davranışı düzeltilirken 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 sunuldu.- Sayfalar arasında boşluk oluşturma olanağı sağlamak için
MarginPageTransformer
kullanıma sunuldu (sayfa ekinin dışında). - Birden fazla
PageTransformer
özelliğini birleştirme olanağı sağlamak içinCompositePageTransformer
kullanıma sunuldu.
API değişiklikleri
FragmentStateAdapter#getItem
yöntemi,FragmentStateAdapter#createFragment
olarak yeniden adlandırıldı. Önceki yöntem adının geçmişte hatalara yol açtığı 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 saklananView
/Fragment
sayfa sayısının sıkı bir şekilde kontrol edilmesini sağlar.
API değişiklikleri
orientation
veisUserScrollable
özellikleri artıkSavedState
kapsamında 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 geciktiOnPageChangeCallback
: Küçük uç 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 özelliğ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üyken veya ekran döndürme sırasında veri kümesi güncellemelerini işleme;
- rotasyondan sonra alakasız Parçaları kaldırma;
- kaldırılan öğelerin kaydedilen durumu kaldırılıyor.
PageChangeCallback
: Kenar boşluğu 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üme dahil edilen 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 sonu
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ına çözüm bulundu)
API değişiklikleri
FragmentStateAdapter
,FragmentStatePagerAdapter
yerine geçerRecyclerView.Adapter
,PagerAdapter
yerine geçerregisterOnPageChangeCallback
,addPageChangeListener
yerine geçer
Bilinen sorunlar
- klip-dolgu
- sahteDrag yok
- Java Dokümanı
- yöne paralel iç içe kaydırma
- ekran dışı sınır denetimi yok
- daha iyi TabLayout entegrasyonu gerektirir
- sayfa genişliği 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
- mevcut öğeden önce bir sayfa eklerken geçerli öğeyi görünür tutun
- klavyeyle gezinme için çalışma gerekiyor
FragmentStateAdapter
kararlılık / performans iyileştirmesi yapılacak