ViewPager2
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa | 
|---|---|---|---|---|
| 14 Mei 2024 | 1.1.0 | - | - | - | 
Dependensi AndroidX
Untuk menggunakan ViewPager2, tambahkan dependensi AndroidX berikut ke file
build.gradle project:
Groovy
dependencies { implementation "androidx.viewpager2:viewpager2:1.1.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.1.0") }
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.1.0
Versi 1.1.0
14 Mei 2024
androidx.viewpager2:viewpager2:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.
Perubahan penting sejak versi 1.0.0
- Memperbaiki error saat digunakan dengan RecyclerView 1.3.1-rc01atau yang lebih tinggi.
- ViewPager2kini mengisi- CollectionInfodan- CollectionItemInfodengan benar yang tidak lagi diisi secara default oleh RecyclerView- 1.2.0-alpha02dan yang lebih tinggi.
- Menambahkan antarmuka FragmentTransactionCallbackuntuk memproses perubahan siklus proses fragmen yang terjadi di dalamFragmentStateAdapter.
- Perbaikan masalah FragmentStateAdapterterkait visibilitas menu fragmen awal saat menambahkan fragmen ke fileFragmentManager.
- Memperbaiki pengiriman inset jendela: semua halaman kini mendapatkan inset yang sama. Karena cara WindowInsetsdikirim pada versi API lama (< API 30) yang dapat mencegah inset tersedia untuk tampilan yang setara, Anda harus ikut serta dalam perbaikan ini melaluiWindowInsetsApplier.install(viewPager2)jika ingin menerapkan inset di perangkat < API 30.
Versi 1.1.0-rc01
1 Mei 2024
androidx.viewpager2:viewpager2:1.1.0-rc01 dirilis tanpa perubahan penting sejak versi 1.1.0-beta02. Versi 1.1.0-rc01 berisi commit ini.
Versi 1.1.0-beta02
24 Mei 2023
androidx.viewpager2:viewpager2:1.1.0-beta02 dirilis. Versi 1.1.0-beta02 berisi commit ini.
Perubahan API
- Menambahkan callback yang menyimpan status Fragment ke FragmentTransactionCallback. (I45b90)
- ViewPager2kini tidak lagi mencoba memperbaiki pengiriman- WindowInsetsyang rusak dari versi API lama (< 30), karena perbaikan itu sendiri dapat membahayakan saudara- ViewPager2. Perbaikan masih tersedia, tetapi telah menjadi keikutsertaan sehingga developer dapat memutuskan berdasarkan kasus per kasus. Aktifkan perbaikan dengan memanggil- WindowInsetsApplier.install(viewPager2)). (Ic9a85)
Perbaikan Bug
- Memperbaiki masalah kompatibilitas pada versi RecyclerViewyang lebih baru. Pengguna versiViewPager2ini harus diupdate ke setidaknyaRecyclerView1.3.1-rc01.
Versi 1.1.0-beta01
4 Agustus 2021
androidx.viewpager2:viewpager2:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.
Perubahan API
- Mengupgrade androidx untuk menggunakan Kotlin 1.4 (Id6471, b/165307851, b/165300826) 
- Berpindah ke penargetan Java 8 untuk semua library androidx (2923f39) 
Perbaikan Bug
- Memperbaiki pengiriman inset jendela, semua halaman kini mendapatkan inset yang sama. (I47fef)
Versi 1.1.0-alpha01
1 April 2020
androidx.viewpager2:viewpager2:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit berikut.
Rilis ini disertai dengan perubahan pada RecyclerView 1.2.0-alpha02 dengan mengisi CollectionInfo dan CollectionItemInfo yang tidak lagi disediakan RecyclerView secara default. Saat mengupdate ke RecyclerView 1.2.0-alpha02, update juga ViewPager2 untuk mencegah regresi Aksesibilitas.
Fitur Baru
- Menambahkan antarmuka FragmentTransactionCallbackuntuk memproses perubahan siklus proses fragmen yang terjadi di dalamFragmentStateAdapter. (Ibda77)
Perbaikan Bug
- Perbaikan masalah FragmentStateAdapterterkait visibilitas menu fragmen awal saat menambahkan fragmen ke fileFragmentManager. (I9d2ff, b/144442240)
Versi 1.0.0
Versi 1.0.0
20 November 2019
androidx.viewpager2:viewpager2:1.0.0 dirilis tanpa perubahan dari versi 1.0.0-rc01.  Versi 1.0.0 berisi commit berikut.
Fitur utama 1.0.0
- Perbaikan terhadap implementasi ViewPager sebelumnya:
- Dukungan tata letak RTL (kanan-ke-kiri)
- Dukungan orientasi vertikal
- Dukungan Fragmentyang andal (termasuk penanganan perubahan pada kumpulanFragmentyang sudah ada)
- Animasi perubahan set data (termasuk dukungan DiffUtil)
 
- Migrasi yang mudah dari implementasi ViewPagersebelumnya (API yang sama, jika memungkinkan). Lihat panduan migrasi dan aplikasi contoh.
Lihat panduan tentang penggunaan ViewPager2 untuk beralih antar-Fragment.
Versi 1.0.0-rc01
23 Oktober 2019
androidx.viewpager2:viewpager2:1.0.0-rc01 dirilis tanpa perubahan sejak 1.0.0-beta05.  Versi 1.0.0-rc01 berisi commit berikut.
Versi 1.0.0-beta05
9 Oktober 2019
androidx.viewpager2:viewpager2:1.0.0-beta05 dirilis.  Versi 1.0.0-beta05 berisi commit berikut.
Perbaikan bug
- Perbaikan untuk requestFocuspada halaman di luar layar yang menyebabkan perubahan halaman. Perilaku ini kini konsisten dengan ViewPager yang asli. (b/140656866)
- Perbaikan untuk focusyang tetap ada pada halaman di luar layar setelah halaman berubah. Fokus kini dapat dihapus saat mengubah halaman. (b/140656866)
- Perbaikan perintah transaksi jeda/lanjutkan Fragmentsaat mengubah halaman (kini item utama yang lama selalu dijeda sebelum item yang baru dilanjutkan). (b/139489059)
- Perbaikan untuk canScrollHorizontally(int)dancanScrollVertically(int), yang kini akan menentukan apakah ViewPager2 dapat men-scroll ke arah yang ditentukan. (b/141848404)
- Perbaikan masalah dalam SwipeRefreshLayout agar berfungsi lebih baik dengan ViewPager2.
Versi 1.0.0-beta04
5 September 2019
androidx.viewpager2:viewpager2:1.0.0-beta04 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perbaikan bug
- Perbaikan untuk masalah kasus ekstrem FragmentStateAdapterdengan dataFragmentsebelumnya. (b/139095195)
- Perbaikan untuk EditTextdengan konfigurasi atribut tertentu yang menyebabkan scroll/halaman terlompati saat mengetik/mengarahkan fokus. (b/138044582, b/139432498)
- Perbaikan untuk masalah terkait instance ItemDecoration, dan solusi untuk penempatan indikator overscroll. (b/139012032)
- Perbaikan sejumlah masalah dalam komponen lain agar berfungsi lebih baik dengan ViewPager2: RecyclerView, NestedScrollView, dan Navigation.
Versi 1.0.0-beta03
7 Agustus 2019
androidx.viewpager2:viewpager2:1.0.0-beta03 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perbaikan bug
- Perbaikan untuk masalah FragmentStateAdapterterkait statusFragmenttransien. b/134246546
- Perbaikan untuk masalah currentItemdanscrollStatesaat set data diubah pada waktu scroll halus (kasus ekstrem telah ditangani). b/137642608
- Perbaikan untuk animasi PageTransformer(termasukMarginPageTransformer) yang bermasalah dengan animasi perubahan set data. b/134658996
- Perbaikan untuk animasi scroll halus dalam set data besar (batas nilai bilangan bulat float). b/134858960
Versi 1.0.0-beta02
19 Juli 2019
androidx.viewpager2:viewpager2:1.0.0-beta02 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perbaikan bug
- Menghapus dependensi jacoco tidak disengaja yang diperkenalkan dalam 1.0.0-beta01. (b/137782951)
Versi 1.0.0-beta01
17 Juli 2019
androidx.viewpager2:viewpager2:1.0.0-beta01 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Perbaikan bug
- Perbaikan untuk error ViewPager2.updateCurrentItemsaat men-scroll dan mengupdate set data
- Perbaikan untuk error NullPointerExceptionyang terkait denganViewPager2.isLayoutRtl
- TOUCH_SLOP_PAGINGsekarang menjadi slop sentuh default
- Perbaikan peristiwa OnPageChangeCallbackuntuk adaptor kosong (halaman0, bukannya-1untuk kesamaan denganViewPager1)
Masalah umum
- Kami masih berusaha mengatasi masalah yang belum terselesaikan lainnya sebelum beralih ke Stable
Versi 1.0.0-alpha06
2 Juli 2019
androidx.viewpager2:viewpager2:1.0.0-alpha06 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Ini adalah versi alfa terakhir yang sudah direncanakan sebelum pembekuan API ini dan peralihan ke beta - harap berikan masukan API.
Fitur baru
- Fondasi untuk Aksesibilitas yang lebih baik: ACTION_PAGE_RIGHT,ACTION_PAGE_DOWN, dll.
Perubahan API
- FragmentStateAdapter:- Fragmentitem nonprimer dibatasi pada- STARTED, dan- menuVisibility-nya ditetapkan ke false.
- PageTransformer,- MarginPageTransformer,- CompositePageTransformer: dokumentasi untuk- positiontelah diperbaiki.
Perbaikan bug
- Perbaikan currentItemsetelah perubahan set data/perubahan adaptor.
- Perbaikan masalah MarginPageTransformerdenganoffscreenPageLimit.
- Perbaikan tindakan aksesibilitas saat perilaku FakeDragsedang aktif.
Versi 1.0.0-alpha05
5 Juni 2019
androidx.viewpager2:viewpager2:1.0.0-alpha05 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
- ItemDecoratordiperkenalkan dengan perilaku yang konsisten dengan- RecyclerView.
- MarginPageTransformerdiperkenalkan untuk memungkinkan pembuatan ruang antarhalaman (di luar inset halaman).
- CompositePageTransformerdiperkenalkan untuk memungkinkan penggabungan beberapa- PageTransformer.
Perubahan API
- Metode FragmentStateAdapter#getItemdiganti namanya menjadiFragmentStateAdapter#createFragment. Nama metode yang sebelumnya telah terbukti mengakibatkan bug.
- Nilai OFFSCREEN_PAGE_LIMIT_DEFAULTdiubah dari0menjadi-1. Perubahan kode klien tidak diperlukan jika konstantaOFFSCREEN_PAGE_LIMIT_DEFAULTdigunakan.
Perbaikan bug
- Pembetulan perilaku getCurrentItem()saatSCROLL_STATE_SETTLINGterganggu oleh peristiwa tarik ke arah yang berlawanan.
- Penanganan masalah loader class FragmentStateAdapterdalam konteks "Jangan pertahankan aktivitas".
- Penyempurnaan dokumentasi setOffscreenPageLimit.
Versi 1.0.0-alpha04
7 Mei 2019
androidx.viewpager2:viewpager2:1.0.0-alpha04 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
- offscreenPageLimit: memungkinkan kontrol yang ketat atas jumlah halaman yang dipertahankan oleh- View/- Fragmentdalam hierarki tampilan
Perubahan API
- Atribut orientationdanisUserScrollabletidak lagi menjadi bagian dariSavedState
- Metode saveStatedanrestoreStatemenjadi final dalamFragmentStateAdapter
- Anotasi ViewPager2.OrientationdanViewPager2.ScrollStatemenjadi nonpublik
Perbaikan bug
- SavedState: perbaikan masalah pemulihan yang terjadi saat- Activitydihancurkan/dibuat ulang
- SavedState: pemulihan yang ditunda hingga adaptor ditetapkan
- OnPageChangeCallback: perbaikan kasus ekstrem kecil
Versi 1.0.0-alpha03
3 April 2019
androidx.viewpager2:viewpager2:1.0.0-alpha03 dirilis.  Commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
- Kemampuan untuk men-scroll ViewPager2 secara terprogram: fakeDragBy(offsetPx).
Perubahan API
- FragmentStateAdaptersekarang membutuhkan objek- Lifecycle. Dua konstruktor utilitas ditambahkan agar dapat diperoleh dari- FragmentActivityhost atau- Fragmenthost.
Perbaikan bug
- Sejumlah perbaikan dukungan Fragment:- penanganan update set data saat diminimalkan, atau selama rotasi layar;
- penghapusan Fragment yang tidak relevan setelah rotasi;
- penghapusan status tersimpan pada item yang telah dihapus.
 
- PageChangeCallback: perbaikan penghitungan offset halaman untuk halaman yang memiliki margin.
Versi 1.0.0-alpha02
13 Maret 2019
androidx.viewpager2:viewpager2:1.0.0-alpha02 dirilis.  Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.
Fitur baru
- Kemampuan untuk menonaktifkan input pengguna (setUserInputEnabled,isUserInputEnabled)
Perubahan API
- Class ViewPager2 dinyatakan final
Perbaikan bug
- Perbaikan kestabilan FragmentStateAdapter
Versi 1.0.0-alpha01
7 Februari 2019
androidx.viewpager2:viewpager2  1.0.0-alpha01 dirilis.  Ini adalah rilis pertama ViewPager2.
Fitur baru
- Dibandingkan dengan versi android.support.v4.view.ViewPagersebelumnya (VP1):- Dukungan tata letak kanan-ke-kiri (RTL)
- Dukungan orientasi vertikal
- notifyDataSetChangedberfungsi penuh (bug VP1 telah diatasi)
 
Perubahan API
- FragmentStateAdaptermenggantikan- FragmentStatePagerAdapter
- RecyclerView.Adaptermenggantikan- PagerAdapter
- registerOnPageChangeCallbackmenggantikan- addPageChangeListener
Masalah umum
- clipToPadding
- tidak ada fakeDrag
- JavaDoc
- nested scrolling paralel dengan orientasi
- tidak ada kontrol batas luar layar
- memerlukan integrasi TabLayout yang lebih baik
- tidak ada penyetel pageWidth (dipaksa 100%/100%)
- transformer halaman: tidak ada pilihan lapisan hardware/software; tidak ada urutan menggambar terbalik
- membuat item saat ini tetap terlihat saat suatu halaman disisipkan sebelum halaman saat ini
- navigasi keyboard perlu diperbaiki
- Perbaikan stabilitas/performa FragmentStateAdapterakan segera hadir
