Recyclerview

Menampilkan set data dalam jumlah besar dalam UI sambil meminimalkan penggunaan memori.

Tabel ini mencantumkan semua artefak dalam grup androidx.recyclerview.

Artefak Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
recyclerview 1.3.2 - 1.4.0-beta01 -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
Library ini terakhir diperbarui pada: 21 Agustus 2024

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada RecyclerView, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

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.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.4

Versi 1.4.0-beta01

21 Agustus 2024

androidx.recyclerview:recyclerview:1.4.0-beta01 dirilis, tanpa perubahan sejak 1.4.0-alpha02. Versi 1.4.0-beta01 berisi commit ini.

Catatan kompatibilitas: Versi ini hanya akan melakukan kompilasi terhadap SDK API 35 (Vanilla Ice Cream) atau yang lebih tinggi. Jika melihat peringatan AGP (Plugin Android Gradle) saat melakukan upgrade, Anda dapat menyembunyikannya.

Versi 1.4.0-alpha02

7 Agustus 2024

androidx.recyclerview:recyclerview:1.4.0-alpha02 dirilis. Versi 1.4.0-alpha02 berisi commit ini.

Catatan kompatibilitas: Versi ini hanya akan melakukan kompilasi terhadap SDK API 35 (Vanilla Ice Cream) atau yang lebih tinggi. Jika melihat peringatan AGP (Plugin Android Gradle) saat melakukan upgrade, Anda dapat menyembunyikannya.

Fitur Baru

  • Dukungan kecepatan refresh variabel: RecyclerView sekarang memanggil setFrameContentVelocity saat men-scroll melalui OverScroller (seperti menyelesaikan dari fling atau scroll yang lancar). (I8f8a4)

Perubahan API

  • ViewCompat.LAYOUT_DIRECTION_ API yang tidak digunakan lagi (I51710, b/317055535)
  • Menambahkan RecyclerView$LayoutManager#isLayoutReversed API. (I4970e)

Perubahan lainnya

  • Menghapus secara manual yang menguraikan akses ke API platform baru karena hal ini terjadi secara otomatis melalui pemodelan API saat menggunakan R8 dengan AGP 7.3 atau yang lebih baru (mis. R8 versi 3.3) dan untuk semua build saat menggunakan AGP 8.1 atau yang lebih baru (mis. D8 versi 8.1). Klien yang tidak menggunakan AGP disarankan untuk mengupdate ke D8 versi 8.1 atau yang lebih baru. Baca artikel ini untuk informasi selengkapnya. (Ia60e0, b/345472586)
  • Tambahkan jenis tampilan item ke pengikatan/buat bagian rekaman aktivitas RecyclerView, dan beri label pengambilan data RV sebagai 'forced - needed next frame' jika digunakan oleh frame berikutnya, dan karenanya harus mulai berfungsi sesegera mungkin. (I8ec3e, b/309523615)
  • Update compileSdk ke versi 35 (lihat "Catatan kompatibilitas" di atas untuk mengetahui detailnya). 5dc41be

Kontribusi Eksternal

  • GestureDetectorCompat kini tidak digunakan lagi karena GestureDetector tersedia dari minSdk. (Icc4cd)

Versi 1.4.0-alpha01

18 Oktober 2023

androidx.recyclerview:recyclerview:1.4.0-alpha01 dirilis. Versi 1.4.0-alpha01 berisi commit ini.

Perubahan API

  • Menambahkan RecyclerView$LayoutManager#isLayoutReversed API. (I4970e)

Perbaikan Bug

  • Memperbaiki bug yang menyebabkan error sporadis selama animasi (I42f22b) (juga disertakan dalam 1.3.2)

Versi 1.3.2

Versi 1.3.2

18 Oktober 2023

androidx.recyclerview:recyclerview:1.3.2 dirilis. Versi 1.3.2 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki bug yang menyebabkan error sporadis selama animasi. (I42f22b)

Versi 1.3.1

Versi 1.3.1

26 Juli 2023

androidx.recyclerview:recyclerview:1.3.1 dirilis, tanpa perubahan sejak versi 1.3.1-rc01. Versi 1.3.1 berisi commit ini.

Untuk catatan rilis rilis sebelumnya, lihat halaman Catatan Rilis kami

Versi 1.3.1-rc01

24 Mei 2023

androidx.recyclerview:recyclerview:1.3.1-rc01 dirilis. Versi 1.3.1-rc01 berisi commit ini.

Pengguna ViewPager2 harus mengupdate ke setidaknya 1.1.0-beta02 saat mengupdate ke versi RecyclerView ini untuk menghindari error.

Perubahan API

  • Menambahkan metode setDebugAssertionsEnabled dan setVerboseLoggingEnabled baru yang dapat membantu men-debug masalah terkait RecyclerView di aplikasi. (I514b9)

Perbaikan Bug

  • Memperbaiki error untuk pengguna ViewTreeLifecycleOwner (termasuk ComposeView) dengan melampirkan kembali tampilan yang terpisah sementara saat memanggil onBind. (I7244f2c, b/265347515, b/283288295)

Versi 1.3.0

Versi 1.3.0

8 Maret 2023

androidx.recyclerview:recyclerview:1.3.0 dirilis, tanpa perubahan sejak versi 1.3.0-rc01. Versi 1.3.0 berisi commit ini.

Perubahan penting sejak versi 1.2.0

  • Rilis ini berisi peningkatan performa (sebelumnya disertakan dalam 1.3.0-alpha02 dan 1.3.0-beta01) saat digunakan dengan Jetpack Compose. Jika Anda menggunakan Compose 1.2.0-beta02 atau yang lebih tinggi dan menggunakan MyComposeAdapter dan DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy yang dijelaskan dalam panduan interoperabilitas sebelumnya, Anda harus menghapusnya, karena tidak lagi merupakan peningkatan dari status default.
  • Metode ConcatAdapter.getWrappedAdapterAndPosition baru ditambahkan untuk memungkinkan pengambilan informasi adaptor yang digabungkan dalam situasi saat Anda tidak memiliki ViewHolder, seperti SpanSizeLookup (I2bd4c, b/191543920)

Versi 1.3.0-rc01

21 September 2022

androidx.recyclerview:recyclerview:1.3.0-rc01 dirilis. Version 1.3.0-rc01 berisi commit berikut ini.

  • Tidak ada perubahan sejak rilis terakhir

Versi 1.3.0-beta02

10 Agustus 2022

androidx.recyclerview:recyclerview:1.3.0-beta02 dirilis. Versi 1.3.0-beta02 berisi commit ini.

Perubahan API

  • Menghapus anotasi nullability yang ditambahkan pada versi 1.3.0-beta01 karena anotasi tersebut mewakili perubahan tidak kompatibel sumber yang signifikan bagi pengguna Kotlin (I7a258,I1557e6,I8db76)

Versi 1.3.0-beta01

29 Juni 2022

androidx.recyclerview:recyclerview:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Fitur Baru

  • Rilis beta ini berisi peningkatan performa (sebelumnya disertakan dalam 1.3.0-alpha02 saat digunakan dengan Jetpack Compose. Jika Anda menggunakan Compose 1.2.0-beta02 atau yang lebih tinggi dan menggunakan ViewCompositionStrategy, MyComposeAdapter, dan DisposeOnViewTreeLifecycleDestroyed yang dijelaskan dalam panduan interoperabilitas sebelumnya, Anda harus menghapusnya, karena bukan lagi merupakan peningkatan dari status default.

Perubahan API

  • Menambahkan anotasi nullability untuk sejumlah metode dan parameter guna meningkatkan peringatan lint untuk pengguna Java dan interoperabilitas untuk pengguna Kotlin. Ini mungkin merupakan perubahan yang dapat menyebabkan gangguan sumber untuk beberapa pengguna Kotlin dan mengakibatkan error/peringatan lint tambahan bagi beberapa pengguna Java. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

Perbaikan Bug

  • Pastikan petak diperlakukan sebagai petak oleh layanan a11y dengan menyetel nama class info node a11y. (I12812)

Versi 1.3.0-alpha02

6 April 2022

androidx.recyclerview:recyclerview:1.3.0-alpha02 dirilis. Versi 1.3.0-alpha02 berisi commit ini.

Perubahan API

  • Menambahkan metode BuildCompat eksperimental untuk SDK mendatang (Iafd82, b/207528937)
  • Metode ConcatAdapter.getWrappedAdapterAndPosition baru ditambahkan untuk memungkinkan pengambilan informasi adaptor yang digabungkan dalam situasi saat Anda tidak memiliki ViewHolder, seperti SpanSizeLookup (I2bd4c, b/191543920)

Perbaikan Bug

  • Integrasi dengan library PoolingContainer AndroidX baru (Ib89d2)
  • Menyesuaikan jarak scroll untuk tindakan aksesibilitas (If74ae)

Versi 1.3.0-alpha01

15 September 2021

androidx.recyclerview:recyclerview:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan untuk RecyclerView overscroll regangan. (Iab877)

RecyclerView-Selection Versi 1.2.0

Versi 1.2.0-alpha01

5 Mei 2021

androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah pemetaan kunci/posisi di KeyProvider yang hilang saat entri belum didaur ulang. (b/145767095)

Versi 1.2.1

Versi 1.2.1

2 Juni 2021

androidx.recyclerview:recyclerview:1.2.1 dirilis. Versi 1.2.1 berisi commit ini.

Perbaikan Bug

  • ViewHolder di dalam ConcatAdapter sekarang menampilkan posisi adaptor yang benar saat dikueri dalam callback onViewRecycled. (b/187339376)

Versi 1.2.0

Versi 1.2.0

7 April 2021

androidx.recyclerview:recyclerview:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan utama sejak versi 1.1.0

ConcatAdapter: Adaptor baru ini memungkinkan Anda menyambungkan beberapa Adaptor dengan mudah di RecyclerView yang sama. Lihat postingan blog untuk informasi selengkapnya.

Lazy State Restoration: Adaptor RecyclerView kini dapat menunda pemulihan status hingga kontennya dimuat. Lihat dokumentasi untuk detail selengkapnya.

Versi 1.2.0-rc01

24 Maret 2021

androidx.recyclerview:recyclerview:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

Perbaikan Bug

  • Kini ConcatAdapter.Config.Builder memiliki nilai default yang cocok dengan Config.DEFAULT (b/157169835)

Versi 1.2.0-beta02

24 Februari 2021

androidx.recyclerview:recyclerview:1.2.0-beta02 dirilis. Versi 1.2.0-beta02 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah ketika padding atas menyebabkan glow overscroll kanan berpindah ke atas ke area padding, bukan ke bawah untuk mengikuti padding. (I6b61d, b/118399122)

Versi 1.2.0-beta01

2 Desember 2020

androidx.recyclerview:recyclerview:1.2.0-beta01 dirilis tanpa perubahan sejak 1.2.0-alpha06. Versi 1.2.0-beta01 berisi commit ini.

Versi 1.2.0-alpha06

1 Oktober 2020

androidx.recyclerview:recyclerview:1.2.0-alpha06 dirilis. Versi 1.2.0-alpha06 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan untuk menambahkan beberapa RecyclerListeners. (I70ad8, b/145767095)

Perubahan API

  • RecyclerView.setRecyclerListener(RecyclerListener) tidak digunakan lagi. (I70ad8, b/145767095)

Versi 1.2.0-alpha05

22 Juli 2020

androidx.recyclerview:recyclerview:1.2.0-alpha05 dirilis. Versi 1.2.0-alpha05 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah saat RecyclerView hanya memiliki satu item dan difokuskan, fokus maju atau mundur tidak akan memindahkan fokus. (6f36b3)
  • Memperbaiki ArrayIndexOutOfBoundsException dalam StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • Memperbaiki bug pengukuran di mana dalam keadaan tertentu, RecyclerView tidak menampilkan turunannya secara tidak tepat. (89040c, b/138734786)

Kontribusi Eksternal

  • Terima kasih kepada Kolin Krewinkel atas nama Facebook untuk kontribusinya.

Versi 1.2.0-alpha04

24 Juni 2020

androidx.recyclerview:recyclerview:1.2.0-alpha04 dirilis. Versi 1.2.0-alpha04 berisi commit ini.

Perubahan API

  • MergeAdapter telah diganti namanya menjadi ConcatAdapter untuk menghindari kebingungan dengan perilaku penggabungan data yang berbeda (c0540c, b/158019211).

Perbaikan Bug

  • Perbaikan pada scrolling otomatis saat semua item yang terlihat dihapus (fe8670, b/154124815)

Versi 1.2.0-alpha03

29 April 2020

androidx.recyclerview:recyclerview:1.2.0-alpha03 dirilis. Versi 1.2.0-alpha03 berisi commit ini.

Fitur Baru

  • RecyclerView kini memiliki metode nestedScrollBy yang memungkinkan scroll terprogram yang bekerja sama dengan scroll bertingkat: (Iba58)

Versi 1.2.0-alpha02

1 April 2020

androidx.recyclerview:recyclerview:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.

Ini dan versi yang lebih tinggi dari RecyclerView tidak kompatibel dengan versi ViewPager2 yang lebih rendah. Jika Anda sedang menggunakan androidx.viewpager2:viewpager2:1.0.0 atau yang lebih rendah, pastikan untuk mengupdate ke androidx.viewpager2:viewpager2:1.1.0-alpha01.

Fitur Baru

  • MergeAdapter

    • MergeAdapter: Adapter RecyclerView baru yang dapat menggabungkan beberapa adaptor secara linear.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    Untuk contoh di atas, MergeAdapter akan menyajikan item dari adapter1 yang diikuti dengan adapter2.

  • RecyclerView.Adapter Pemulihan keadaan lambat:

    • Menambahkan API baru ke class RecyclerView.Adapter yang memungkinkan Adapter mengontrol kapan kondisi tata letak harus dipulihkan.

    • Misalnya, Anda dapat memanggil:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    agar RecyclerView menunggu hingga Adapter tidak kosong sebelum memulihkan posisi scroll.

  • CollectionInfo dan CollectionItemInfo tidak akan lagi diisi secara default.

    • Jika Anda menginginkan Layanan Aksesibilitas (Talkback misalnya) untuk terus menunjukkan jumlah dan indeks item kepada pengguna, Anda harus mengisi CollectionInfo dan CollectionItemInfo sendiri.

    • Objek ini tidak lagi diisi dalam framework karena framework tidak dapat menentukan jumlah item yang diketahui oleh pengguna (seperti pemisah, header, atau item RecyclerView yang mewakili beberapa item yang diketahui).

Perbaikan Bug

  • RecyclerView kini menghindari penjangkaran pada View di luar viewport saat ukuran viewport berubah
  • Memperbaiki bug di DiffUtil yang mungkin menyebabkan kesalahan diff ketika item asli dalam daftar pertama diduplikasi beberapa kali dalam daftar kedua. (b/123376278)

Versi 1.2.0-alpha01

18 Desember 2019

androidx.recyclerview:recyclerview:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Perbaikan bug

  • Memperbaiki masalah kecil dengan FastScroller terkait gambar RTL dan akurasi sentuh (b/143789932, aosp/1130438)
  • Memperbaiki error pada ItemTouchHelper saat dihapus dari RecyclerView saat animasi ItemTouchHelper berjalan (b/140447176, aosp/1167575)

Versi 1.1.0

Versi 1.1.0

20 November 2019

androidx.recyclerview:recyclerview:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • PagerSnapHelper dan LinearSnapHelper sekarang memperhitungkan padding RecyclerView berapa pun nilai clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)
  • RecyclerView.setLayoutTransition(LayoutTransition) secara resmi tidak digunakan lagi dan akan memunculkan IllegalArgumentException jika dipanggil dengan nilai bukan null. Gunakan RecyclerView.setItemAnimator(ItemAnimator) sebagai gantinya. (aosp/839414)
  • aosp/723649: RecyclerView sekarang mengimplementasikan NestedScrollingChild3, yang memungkinkannya untuk diberi tahu saat semua induk scroll bersarangnya berhenti menggunakan jarak scroll bersarang. Jika kode developer saat ini menggantikan RecyclerView.onNestedScroll(View, int, int, int, int, int), kode tersebut kemungkinan tidak akan dipanggil lagi, dan RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) harus diganti.
  • RecyclerView sekarang memiliki atribut gaya default: recyclerViewStyle, yang memungkinkan penetapan gaya default dalam tema Anda
  • API tindakan aksesibilitas ViewCompat tidak akan lagi mengganggu ItemDelegate RecyclerView.
  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) dapat diganti untuk menyesuaikan banyaknya ruang tata letak ekstra yang perlu ditambahkan ke salah satu sisi RecyclerView yang terkait. (aosp/931259)
  • Menambahkan overload smoothScrollBy baru: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), yang memungkinkan Anda menentukan lamanya waktu (dalam milidetik) yang diperlukan animasi. (aosp/952807)

Versi 1.1.0-rc01

23 Oktober 2019

androidx.recyclerview:recyclerview:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Perbaikan bug

  • Memperbaiki "Aplikasi Tidak Merespons" saat menggantikan RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

Versi 1.1.0-beta05

9 Oktober 2019

androidx.recyclerview:recyclerview:1.1.0-beta05 dirilis. Versi 1.1.0-beta05 berisi commit ini.

Perubahan API

  • Menindaklanjuti aosp/1106715 dan aosp/1103182, sekarang LinearSnapHelper dan PagerSnapHelper akan menampilkan tampilan yang berada di tengah-tengah area RecyclerView, dikurangi padding, meskipun terdapat nilai clipToPadding. (aosp/1130728)

Perbaikan bug

  • Memperbaiki masalah RecyclerView yang menghasilkan node aksesibilitas duplikat untuk turunan RecyclerView. (aosp/1130618)
  • Memperbaiki masalah Virtual Accessibility Hierarchy di RecyclerViews yang tidak berfungsi.
  • Memperbaiki masalah yang menyebabkan ItemDelegate kustom tidak digunakan.

Versi 1.1.0-beta04

5 September 2019

androidx.recyclerview:recyclerview:1.1.0-beta04 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perbaikan bug

  • PagerSnapHelper dan LinearSnapHelper sekarang memperhitungkan padding RecyclerView berapa pun nilai clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • Memperbaiki bug RecyclerView tidak melarang intersep sentuh saat pra-scrolling bersarang menyebabkan NestedScrollingParent men-scroll (b/138668210, aosp/1105373 ). Kondisi ini menguntungkan library seperti ViewPager2.
  • RecyclerView sekarang secara konsisten mengarah ke SCROLL_STATE_DRAGGING sebelum pra-scroll bersarang dikirim (aosp/1105373)
  • Gerakan sebelum scroll bertingkat tidak lagi dilakukan sebelum gestur melebihi touch slop (b/139530818, aosp/1105373)
  • Argumen dx dan dy yang dikirimkan ke pra-scroll bersarang akan diubah ke nol saat RecyclerView tidak dapat men-scroll ke arah tersebut (aosp/1105373)

Versi 1.1.0-beta03

15 Agustus 2019

androidx.recyclerview:recyclerview:1.1.0-beta03 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • RecyclerView sekarang mengirimkan jarak scroll melalui View.onScrollChanged(int l, int t, int oldl, int oldt) sedemikian rupa sehingga layanan aksesibilitas akan diberi tahu tentang perubahan scroll secara akurat. (aosp/1007823)

Perbaikan bug

  • Memperbaiki bug stack overflow terkait RecyclerView dan aksesibilitas. (aosp/1099577)

Versi 1.1.0-beta02

7 Agustus 2019

androidx.recyclerview:recyclerview:1.1.0-beta02 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • RecyclerView sekarang memiliki atribut gaya default: recyclerViewStyle, yang memungkinkan penetapan gaya default dalam tema Anda

Perbaikan bug

  • Memperbaiki bug yang membuat RecyclerView tidak melarang intersep sentuh saat gestur scroll menyebabkan NestedScrollingParent ter-scroll. (b/131115697, aosp/1055911)

Versi 1.1.0-beta01

2 Juli 2019

androidx.recyclerview:recyclerview:1.1.0-beta01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • RecyclerView sekarang berpartisipasi dalam scroll bersarang jika scroll dimulai melalui peristiwa aksesibilitas. (aosp/973584)

Versi 1.1.0-alpha06

5 Juni 2019

androidx.recyclerview:recyclerview:1.1.0-alpha06 dan androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Menambahkan overload smoothScrollBy baru: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), yang memungkinkan Anda menentukan lamanya waktu (dalam milidetik) yang diperlukan animasi. (aosp/952807)

Perubahan API

  • GridLayoutManager dan StaggeredGridLayoutManager tidak lagi otomatis melabeli item rentang penuh sebagai header untuk keperluan aksesibilitas (aosp/969703)
  • Mempertahankan urutan pemilihan (berdasarkan waktu pembuatan) dalam recyclerview-selection (aosp/937279)

Perbaikan bug

  • Memperbaiki bug di mana RecyclerView memunculkan kecepatan yang salah selagi dalam situasi scroll bersarang. (aosp/961642)
  • Menambahkan peningkatan stabilitas ke recyclerview-selection (aosp/960213, aosp/926296)

Versi 1.1.0-alpha05

7 Mei 2019

androidx.recyclerview:recyclerview:1.1.0-alpha05 dan androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) dapat diganti untuk menyesuaikan banyaknya ruang tata letak ekstra yang perlu ditambahkan ke salah satu sisi RecyclerView yang terkait. (aosp/931259)

Perubahan API

  • Menambahkan API untuk mengambil DividerItemDecoration drawable (aosp/937282)
  • Menghentikan penggunaan LinearLayout.getExtraLayoutSpace(RecyclerVew.State) dan menggantinya dengan mekanisme baru yang mendukung ruang tata letak tambahan kustom di kedua sisi. Metode baru ini adalah LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

Perbaikan bug

  • Membersihkan pilihan Gestur (aosp/940781)
  • Mempertahankan urutan pemilihan (berdasarkan waktu pembuatan) (b/128455535)

Versi 1.1.0-alpha04

3 April 2019

androidx.recyclerview:recyclerview:1.1.0-alpha04 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perbaikan bug

  • Sebelumnya RV OnItemTouchListener tidak dapat mengintersep ACTION_UP, yang mencegah OnItemTouchListener memblokir kode lain untuk merespons ACTION_UP. Masalah ini sudah diperbaiki: (aosp/916137)

Versi 1.1.0-alpha03

13 Maret 2019

androidx.recyclerview:recyclerview:1.1.0-alpha03 dirilis. Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • GridLayoutManager: Memilih untuk menggunakan estimasi dimensi scroll bar GridLayoutManager dengan resolusi lebih tinggi (aosp/838836):
    • Menggunakan informasi span guna memperkirakan dimensi scroll bar untuk GridLayoutManager.
    • Untuk mengaktifkan, panggil GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) yang meneruskan nilai true.
    • Lihat dokumentasi tentang GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) untuk informasi selengkapnya.

Perbaikan bug

  • Aksesibilitas: Terdapat bug di mana begitu ViewHolder didaur ulang lalu dipulihkan, ItemDelegate yang terkait dengan RecyclerViewAccessibilityDelegate RecyclerView tidak dikaitkan dengan itemView ViewHolder, sehingga mengganggu Aksesibilitas. Masalah ini sudah diperbaiki (aosp/917740).

Versi 1.1.0-alpha02

30 Januari 2019

androidx.recyclerview:recyclerview 1.1.0-alpha02 dirilis.

Perubahan API

  • RecyclerView.setLayoutFrozen(boolean) dan RecyclerView.isLayoutFrozen() tidak digunakan lagi dan digantikan dengan RecyclerView.suppressLayout(boolean) dan RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) secara resmi tidak digunakan lagi dan akan memunculkan IllegalArgumentException jika dipanggil dengan nilai bukan null. (aosp/839414)

Perbaikan bug

  • Memperbaiki bug pada RV di mana SmoothScroller tidak pernah berhenti (aosp/843741)
  • Memperbaiki bug di mana SCROLL_STATE_IDLE mungkin tidak dipanggil pada akhir animasi scroll. (aosp/812576)

Versi 1.1.0-alpha01

3 Desember 2018

androidx.recyclerview 1.1.0-alpha01 dan androidx.recyclerview-selection 1.1.0-alpha01 dirilis.

androidx.recyclerview 1.1.0-alpha01

Perubahan API

  • aosp/723649: RecyclerView sekarang mengimplementasikan NestedScrollingChild3, yang memungkinkannya untuk diberi tahu saat semua induk scroll bersarangnya berhenti menggunakan jarak scroll bersarang. Jika kode developer saat ini menggantikan RecyclerView.onNestedScroll(View, int, int, int, int, int), kode tersebut kemungkinan tidak akan dipanggil lagi, dan RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) harus diganti.

Perbaikan bug

  • Memperbaiki error saat menggunakan TransitionManager untuk menciutkan/meluaskan item di RecyclerView (b/37129527).
  • Memperbaiki bug di mana perilaku RecyclerView.OnItemTouchListener tidak konsisten dengan perilaku onInterceptTouchEvent dan onTouchEvent sistem tampilan (aosp/721235)
  • Memperbaiki beberapa bug kasus ekstrem terkait scroll yang lancar (aosp/729718, aosp/747168, aosp/812576)
  • Memperbaiki strategi snap di PagerSnapHelper untuk menangani tampilan turunan non-standar (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

Perbaikan bug

  • Memperbaiki ConcurrentModificationException saat set data berubah karena penghapusan pilihan.

RecyclerView-Selection Versi 1.1.0

RecyclerView-Selection Versi 1.1.0

27 Januari 2021

androidx.recyclerview:recyclerview-selection:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan utama sejak versi 1.0.0

  • Banyak peningkatan stabilitas.
  • Metode withGestureTooltypes dan withPointerTooltypes tidak digunakan lagi pada SelectionTracker.Builder. Metode ini akan dihapus dalam rilis mendatang.

RecyclerView-Selection Versi 1.1.0-rc03

1 Oktober 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc03 dirilis. Versi 1.1.0-rc03 berisi commit ini.

Perbaikan Bug

Terima kasih kepada Stefan Kiesler yang telah menguji perbaikan dan masukan.

  • Memperbaiki masalah saat tampilan turunan OnClickListeners dipanggil secara tidak terduga selama pemilihan aktif.
  • Pengendali mouse (pilihan band) > Menangani scroll yang tidak diharapkan dengan baik. (b/167821507)

RecyclerView-Selection Versi 1.1.0-rc02

2 September 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc02 dirilis. Versi 1.1.0-rc02 berisi commit ini.

Sorotan

  • Mengatasi beberapa regresi dari versi 1.0 dalam penanganan input.
  • Mengupdate library untuk mematuhi onRequestDisallowInterceptTouchEvent, yang memungkinkannya memutar dengan baik menggunakan ItemTouchHelper (cukup geser).

Perbaikan Bug

  • Memperbaiki masalah saat library pemilihan salah menafsirkan peristiwa GestureDetector yang mengakibatkan hilangnya ketukan selama pemilihan aktif (b/165030422)
  • Memperbaiki masalah saat pemilihan tidak diperbarui untuk mencerminkan item yang dihapus dari adaptor. (b/138932671)
  • Memperbaiki masalah saat item RecyclerView akan mengaktifkan peristiwa onClick sementara SelectionTracker memiliki pemilihan aktif (b/161162268)
  • Sekarang menangani onRequestDisallowInterceptTouchEvent dengan benar
  • Memperbaiki masalah saat ”Cannot call this method in a scroll callback” terlihat selama scrolling mouse di Q
  • Dokumen yang diperbarui (terutama di StableIdKeyProvider) untuk menyatakan dengan jelas persyaratan instance RecyclerView

Recyclerview-Selection Versi 1.1.0-rc01

5 Februari 2020

androidx.recyclerview:recyclerview-selection:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Perbaikan bug

  • Memperbaiki masalah RecyclerView sulit di-scroll dengan pemilihan gestur jika berinteraksi dengan AppBarLayout yang dapat di-scroll (aosp/1193934)

RecyclerView-Selection Versi 1.1.0-beta01

4 Desember 2019

androidx.recyclerview:recyclerview-selection:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Peningkatan umum dalam stabilitas yang terkait dengan pemeriksaan defensif dan pengelolaan keadaan internal.

Perbaikan bug

Perubahan API

  • Menambahkan parameter jenis kunci pemilihan ke class dan metode jika tidak ditemukan.
  • Metode yang tidak digunakan lagi:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • Metode ini ada dengan tujuan bahwa developer mungkin memetakan penunjuk atau perilaku gestur ke jenis alat selain default*. Tujuan ini bagus, tetapi setelah digunakan lebih jauh, ternyata ekspektasi pengguna terkait perilaku input sangat relatif terhadap jenis alat. Selain itu, stylus "pasif" adalah jenis alat FINGER sejauh yang berkaitan dengan sistem input Android.
    • Jenis alat default adalah FINGER untuk Gestur dan MOUSE untuk Pointer.