Recyclerview

Hiển thị các tập dữ liệu lớn trong giao diện người dùng của bạn, đồng thời giảm thiểu mức sử dụng bộ nhớ.

Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.recyclerview.

Cấu phần phần mềm Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
recyclerview 1.3.2 - 1.4.0-beta01 -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
Lần gần nhất cập nhật thư viện này: ngày 21 tháng 8 năm 2024

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên RecyclerView, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

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")
}

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Phiên bản 1.4

Phiên bản 1.4.0-beta01

Ngày 21 tháng 8 năm 2024

androidx.recyclerview:recyclerview:1.4.0-beta01 được phát hành mà không có thay đổi nào kể từ 1.4.0-alpha02. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.

Lưu ý về khả năng tương thích: Phiên bản này sẽ chỉ biên dịch theo SDK API 35 (Vanilla Ice Cream) trở lên. Nếu thấy cảnh báo AGP (trình bổ trợ Android cho Gradle) khi nâng cấp, bạn có thể loại bỏ các cảnh báo đó.

Phiên bản 1.4.0-alpha02

Ngày 7 tháng 8 năm 2024

Phát hành androidx.recyclerview:recyclerview:1.4.0-alpha02. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.

Lưu ý về khả năng tương thích: Phiên bản này sẽ chỉ biên dịch theo SDK API 35 (Vanilla Ice Cream) trở lên. Nếu thấy cảnh báo AGP (trình bổ trợ Android cho Gradle) khi nâng cấp, bạn có thể loại bỏ các cảnh báo đó.

Tính năng mới

  • Hỗ trợ tốc độ làm mới biến: RecyclerView hiện gọi setFrameContentVelocity khi cuộn qua OverScroller (chẳng hạn như giải quyết từ thao tác hất hoặc cuộn mượt mà). (I8f8a4)

Thay đổi về API

  • Các API ViewCompat.LAYOUT_DIRECTION_ không dùng nữa (I51710, b/317055535)
  • Thêm API RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

Các thay đổi khác

  • Xoá nội dung chỉ định thủ công quyền truy cập vào các API nền tảng mới vì việc này tự động xảy ra thông qua tính năng lập mô hình API khi sử dụng R8 với AGP 7.3 trở lên (ví dụ: R8 phiên bản 3.3) và đối với tất cả các bản dựng khi sử dụng AGP 8.1 trở lên (ví dụ: D8 phiên bản 8.1). Những ứng dụng không sử dụng AGP nên cập nhật lên D8 phiên bản 8.1 trở lên. Xem bài viết này để biết thêm chi tiết. (Ia60e0, b/345472586)
  • Thêm loại thành phần hiển thị mục vào RecyclerView liên kết/tạo các phần dấu vết và gắn nhãn các lượt tìm nạp trước RV là "bắt buộc – cần có khung hình tiếp theo" nếu chúng được dự kiến sẽ được khung tiếp theo sử dụng và do đó phải bắt đầu công việc càng sớm càng tốt. (I8ec3e, b/309523615)
  • Cập nhật compileSdk thành 35 (xem phần "Ghi chú về khả năng tương thích" ở trên để biết thông tin chi tiết). 5dc41be

Đóng góp bên ngoài

  • GestureDetectorCompat hiện không được dùng nữa vì GestureDetector có sẵn trong minSdk. (Icc4cd)

Phiên bản 1.4.0-alpha01

Ngày 18 tháng 10 năm 2023

Phát hành androidx.recyclerview:recyclerview:1.4.0-alpha01. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm API RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

Sửa lỗi

  • Khắc phục lỗi gây ra sự cố ngẫu nhiên trong ảnh động (I42f22b) (cũng có trong phiên bản 1.3.2)

Phiên bản 1.3.2

Phiên bản 1.3.2

Ngày 18 tháng 10 năm 2023

Phát hành androidx.recyclerview:recyclerview:1.3.2. Phiên bản 1.3.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi gây ra sự cố ngẫu nhiên trong quá trình tạo ảnh động. (I42f22b)

Phiên bản 1.3.1

Phiên bản 1.3.1

Ngày 26 tháng 7 năm 2023

Phát hành androidx.recyclerview:recyclerview:1.3.1 và không có thay đổi nào kể từ phiên bản 1.3.1-rc01. Phiên bản 1.3.1 bao gồm các thay đổi sau.

Để biết ghi chú phát hành của bản phát hành trước, hãy tham khảo trang Ghi chú phát hành của chúng tôi.

Phiên bản 1.3.1-rc01

Ngày 24 tháng 5 năm 2023

Phát hành androidx.recyclerview:recyclerview:1.3.1-rc01. Phiên bản 1.3.1-rc01 bao gồm các thay đổi sau.

Người dùng ViewPager2 phải cập nhật lên ít nhất là 1.1.0-beta02 khi cập nhật lên phiên bản RecyclerView này để tránh sự cố.

Thay đổi về API

  • Thêm các phương thức setDebugAssertionsEnabledsetVerboseLoggingEnabled mới có thể hỗ trợ gỡ lỗi các vấn đề liên quan đến RecyclerView trong ứng dụng. (I514b9)

Sửa lỗi

  • Khắc phục sự cố cho người dùng ViewTreeLifecycleOwner (bao gồm cả ComposeView) bằng cách tạm thời đính kèm lại các khung hiển thị tạm thời được tách ra khi gọi onBind. (I7244f2c, b/265347515, b/283288295)

Phiên bản 1.3.0

Phiên bản 1.3.0

Ngày 8 tháng 3 năm 2023

Phát hành androidx.recyclerview:recyclerview:1.3.0 và không có thay đổi nào kể từ phiên bản 1.3.0-rc01. Phiên bản 1.3.0 bao gồm các thay đổi sau.

Những thay đổi quan trọng kể từ phiên bản 1.2.0

  • Bản phát hành này có các điểm cải tiến về hiệu suất (trước đây có trong 1.3.0-alpha021.3.0-beta01) khi sử dụng với Jetpack Compose. Nếu bạn đang dùng phiên bản Compose 1.2.0-beta02 trở lên, đồng thời đang sử dụng MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy được mô tả trong các nguyên tắc về khả năng tương tác trước đây, bạn nên xoá các tuỳ chọn này vì trạng thái mặc định không còn cải thiện nữa.
  • Thêm phương thức ConcatAdapter.getWrappedAdapterAndPosition mới để cho phép truy xuất thông tin bộ chuyển đổi được gói trong trường hợp bạn không có ViewHolder, chẳng hạn như SpanSizeLookup (I2bd4c, b/191543920)

Phiên bản 1.3.0-rc01

Ngày 21 tháng 9 năm 2022

Phát hành androidx.recyclerview:recyclerview:1.3.0-rc01. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.

  • Không có thay đổi nào kể từ bản phát hành gần đây nhất

Phiên bản 1.3.0-beta02

Ngày 10 tháng 8 năm 2022

Phát hành androidx.recyclerview:recyclerview:1.3.0-beta02. Phiên bản 1.3.0-beta02 bao gồm các thay đổi sau.

Thay đổi API

  • Xoá chú thích thuộc tính rỗng được thêm vào phiên bản 1.3.0-beta01 do chúng đại diện cho một thay đổi đáng kể không tương thích nguồn đối với người dùng Kotlin (I7a258,I1557e6,I8db76)

Phiên bản 1.3.0-beta01

Ngày 29 tháng 6 năm 2022

Phát hành androidx.recyclerview:recyclerview:1.3.0-beta01. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

  • Bản phát hành beta này chứa các chỉnh sửa cải thiện hiệu suất (đã có trong phiên bản 1.3.0-alpha02 khi được sử dụng với Jetpack Compose. Nếu bạn đang sử dụng phiên bản Compose 1.2.0-beta02 trở lên và từng sử dụng phiên bản MyComposeAdapterDisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy như mô tả trong các nguyên tắc về khả năng tương tác trước đó, bạn nên xoá các nội dung chỉnh sửa này vì trạng thái mặc định đã bao gồm các nội dung chỉnh sửa này.

Thay đổi API

  • Thêm chú giải tính chất rỗng cho một số phương thức và thông số để cải thiện cảnh báo lỗi cho người dùng Java và khả năng tương tác cho người dùng Kotlin. Đây có thể là một thay đổi có thể gây lỗi nguồn cho một số người dùng Kotlin và gây ra thêm cảnh báo/lỗi cho một số người dùng Java. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

Sửa lỗi

  • Đảm bảo các dịch vụ a11y coi lưới là lưới bằng cách đặt tên lớp thông tin nút a11y. (I12812)

Phiên bản 1.3.0-alpha02

Ngày 6 tháng 4 năm 2022

Phát hành androidx.recyclerview:recyclerview:1.3.0-alpha02. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.

Thay đổi API

  • Thêm các phương thức BuildCompat thử nghiệm cho các SDK trong tương lai (Iafd82, b/207528937)
  • ConcatAdapter.getWrappedAdapterAndPosition mới đã thêm phương thức để cho phép truy xuất thông tin bộ chuyển đổi được bao bọc trong các trường hợp mà bạn không có ViewHolder, chẳng hạn nhưSpanSizeLookup (I2bd4c .b/191543920)

Sửa lỗi

  • Tích hợp với thư viện AndroidX WiFiingCONTAINER mới (Ib89d2)
  • Điều chỉnh khoảng cách cuộn cho thao tác hỗ trợ tiếp cận (If74ae)

Phiên bản 1.3.0-alpha01

Ngày 15 tháng 9 năm 2021

Phát hành androidx.recyclerview:recyclerview:1.3.0-alpha01. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tính năng hỗ trợ cho hiệu ứng kéo giãn khi cuộn xuống RecyclerView. (Iab877)

RecyclerView-Selection Phiên bản 1.2.0

Phiên bản 1.2.0-alpha01

Ngày 5 tháng 5 năm 2021

Phát hành androidx.recyclerview:recyclerview-selection:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề ánh xạ khoá/vị trí trong KeyProvider bị mất khi mục nhập chưa được tái sử dụng. (b/145767095)

Phiên bản 1.2.1

Phiên bản 1.2.1

Ngày 2 tháng 6 năm 2021

Phát hành androidx.recyclerview:recyclerview:1.2.1. Phiên bản 1.2.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Giờ đây, ViewHolder bên trong ConcatAdapter trả về vị trí trình chuyển đổi chính xác khi được truy vấn trong lệnh gọi lại onViewRecycled. (b/187339376)

Phiên bản 1.2.0

Phiên bản 1.2.0

Ngày 7 tháng 4 năm 2021

Phát hành androidx.recyclerview:recyclerview:1.2.0. Phiên bản 1.2.0 bao gồm các thay đổi sau.

Thay đổi lớn từ phiên bản 1.1.0

ConcatAdapter: Trình chuyển đổi mới này cho phép bạn dễ dàng nối nhiều Trình chuyển đổi trên cùng một RecyclerView. Hãy xem bài đăng trên blog để biết thêm thông tin.

Khôi phục trạng thái tải lười: Trình chuyển đổi RecyclerView hiện có thể trì hoãn tính năng khôi phục trạng thái cho đến khi nội dung của nó được tải. Hãy xem tài liệu để biết thêm chi tiết.

Phiên bản 1.2.0-rc01

Ngày 24 tháng 3 năm 2021

Phát hành androidx.recyclerview:recyclerview:1.2.0-rc01. Phiên bản 1.2.0-rc01 bao gồm bao gồm các thay đổi sau.

Sửa lỗi

  • ConcatAdapter.Config.Builder hiện có các giá trị mặc định khớp với Config.DEFAULT (b/157169835)

Phiên bản 1.2.0-beta02

Ngày 24 tháng 2 năm 2021

Phát hành androidx.recyclerview:recyclerview:1.2.0-beta02. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề khoảng đệm trên cùng gây ra hiện tượng ánh sáng cuộn quá mức di chuyển lên trên vào khoảng đệm, thay vì hướng xuống dưới để tuân theo khoảng đệm. (I6b61d, b/118399122)

Phiên bản 1.2.0-beta01

Ngày 2 tháng 12 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-beta01 và không có thay đổi nào kể từ phiên bản 1.2.0-alpha06. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.

Phiên bản 1.2.0-alpha06

Ngày 1 tháng 10 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha06. Phiên bản 1.2.0-alpha06 bao gồm các thay đổi sau.

Tính năng mới

  • Bổ sung tính năng hỗ trợ để thêm nhiều RecyclerListeners. (I70ad8, b/145767095)

Thay đổi API

  • Ngừng sử dụng RecyclerView.setRecyclerListener(RecyclerListener). (I70ad8, b/145767095)

Phiên bản 1.2.0-alpha05

Ngày 22 tháng 7 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha05. Phiên bản 1.2.0-alpha05 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề nếu RecyclerView chỉ có một mục và mục đó có tiêu điểm, thì tiêu điểm tiến hoặc lùi sẽ không di chuyển tiêu điểm. (6f36b3)
  • Khắc phục một ArrayIndexOutOfBoundsException trong StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625 )
  • Khắc phục lỗi đo lường trong một số trường hợp cụ thể, RecyclerView không cho kết quả phù hợp hiển thị thành phần con tương ứng. (89040c, b/138734786)

Đóng góp bên ngoài

  • Nhờ vào Kolin Krewinkel đã thay mặt Facebook thực hiện đóng góp này!

Phiên bản 1.2.0-alpha04

Ngày 24 tháng 6 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha04. Phiên bản 1.2.0-alpha04 bao gồm các thay đổi sau.

Thay đổi API

  • MergeAdapter đã được đổi tên thành ConcatAdapter để tránh nhầm lẫn với các hoạt động hợp nhất dữ liệu khác nhau (c0540c, b/158019211).

Sửa lỗi

  • Cải tiến đối với thao tác cuộn tự động khi xoá tất cả các mục hiển thị (fe8670, b/154124815)

Phiên bản 1.2.0-alpha03

Ngày 29 tháng 4 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha03. Phiên bản 1.2.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • RecyclerView hiện có phương thức nestedScrollBy cho phép cuộn có lập trình phối hợp với tính năng cuộn có lồng nhau: (Ibaa58)

Phiên bản 1.2.0-alpha02

Ngày 1 tháng 4 năm 2020

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.

Phiên bản này và các phiên bản cao hơn của RecyclerView không tương thích với các phiên bản thấp hơn của ViewPager2. Nếu bạn đang dùng androidx.viewpager2:viewpager2:1.0.0 trở xuống, hãy đảm bảo cập nhật lên androidx.viewpager2:viewpager2:1.1.0-alpha01.

Tính năng mới

  • MergeAdapter

    • MergeAdapter: Trình chuyển đổi RecyclerView mới có thể kết hợp nhiều trình chuyển đổi một cách tuyến tính.
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    Đối với mẫu ở trên, MergeAdapter sẽ hiển thị các mục từ adapter1, sau đó là adapter2.

  • RecyclerView.Adapter khôi phục trạng thái tải lười:

    • Thêm một API mới vào lớp RecyclerView.Adapter, cho phép Trình chuyển đổi kiểm soát thời điểm khôi phục trạng thái bố cục.

    • Ví dụ: bạn có thể gọi:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    để yêu cầu RecyclerView phải chờ cho đến khi Trình chuyển đổi không trống trước khi khôi phục vị trí cuộn.

  • Theo mặc định, CollectionInfo và CollectionItemInfo sẽ không còn được điền theo mặc định nữa.

    • Nếu muốn nhận Dịch vụ hỗ trợ tiếp cận (ví dụ: Talkback) để tiếp tục cho biết số lượt đếm và chỉ mục của mục tới người dùng, thì bạn cần tự điền CollectionInfo và CollectionItemInfo.

    • Các đối tượng này không còn được điền sẵn trong khung vì khung không thể xác định được số lượt đếm mục mà người dùng nhìn thấy (chẳng hạn như dòng phân cách, tiêu đề hoặc các mục RecyclerView đại diện cho nhiều mục được quan sát).

Sửa lỗi

  • Giờ đây, RecyclerView không còn gắn với các Chế độ xem bên ngoài khung nhìn khi kích thước khung nhìn đã thay đổi
  • Khắc phục lỗi trong Diffutil, trong đó lỗi có thể tính toán khác biệt sai khi một mục gốc trong danh sách đầu tiên được sao chép nhiều lần trong danh sách thứ hai. (b/123376278)

Phiên bản 1.2.0-alpha01

Ngày 18 tháng 12 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục các vấn đề nhỏ với FastScroller liên quan đến bản vẽ RTL và độ chính xác của thao tác chạm (b/143789932, aosp/1130438)
  • Khắc phục sự cố trong itemTouchHelper khi xoá khỏi RecyclerView trong khi các ảnh động ItemTouchHelper đang chạy (b/140447176, aosp/1167575)

Phiên bản 1.1.0

Phiên bản 1.1.0

Ngày 20 tháng 11 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 1.0.0

  • Giờ đây, PagerSnapHelperLinearSnapHelper tính đến khoảng đệm RecyclerView bất kể giá trị của clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728)
  • RecyclerView.setLayoutTransition(LayoutTransition) chính thức không được dùng nữa và sẽ gửi một IllegalArgumentException khi được gọi với giá trị không rỗng. Thay vào đó, hãy sử dụng RecyclerView.setItemAnimator(ItemAnimator). (aosp/839414)
  • aosp/723649: RecyclerView hiện triển khai NestedScrollingChild3, cho phép nó nhận thông báo về thời điểm tất cả thành phần mẹ của nó cuộn lồng nhau ngừng sử dụng khoảng cách cuộn lồng nhau. Nếu mã của nhà phát triển hiện đang ghi đè RecyclerView.onNestedScroll(View, int, int, int, int, int), thì mã này có thể không còn được gọi và thay vào đó RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) sẽ bị ghi đè.
  • RecyclerView hiện có thuộc tính kiểu mặc định: recyclerViewStyle, cho phép thiết lập kiểu mặc định trong giao diện của bạn
  • API hành động hỗ trợ tiếp cận của ViewCompat không còn phá vỡ RecyclerView ItemDelegate nữa.
  • Bạn có thể ghi đè LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) để tuỳ chỉnh khoảng không gian bố cục bổ sung cần thêm vào một trong hai bên của RecyclerView được liên kết. (aosp/931259)
  • Thêm tính năng độ dời smoothScrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), cho phép bạn chỉ định thời lượng bằng mili giây mà ảnh động nên diễn ra. (aosp/952807)

Phiên bản 1.1.0-rc01

Ngày 23 tháng 10 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-rc01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi "Ứng dụng không phản hồi" khi ghi đè RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

Phiên bản 1.1.0-beta05

Ngày 9 tháng 10 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-beta05. Phiên bản 1.1.0-beta05 bao gồm các thay đổi sau.

Thay đổi về API

  • Tiếp sau aosp/1106715aosp/1103182, LinearSnapHelper và PagerSnapHelper hiện sẽ trả về chế độ xem ở giữa trung tâm ranh giới của RecyclerView, trừ khoảng đệm, bất kể giá trị của clipToPadding. (aosp/1130728)

Sửa lỗi

  • Khắc phục vấn đề về việc RecyclerView tạo nhiều nút hỗ trợ tiếp cận cho các thành phần con cháu của RecyclerView. (aosp/1130618)
  • Khắc phục sự cố Phân cấp hỗ trợ tiếp cận ảo trong RecyclerViews không hoạt động.
  • Khắc phục sự cố trong trường hợp không sử dụng được ItemDelegates tuỳ chỉnh.

Phiên bản 1.1.0-beta04

Ngày 5 tháng 9 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-beta04. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Sửa lỗi

  • Giờ đây, PagerSnapHelperLinearSnapHelper tính đến khoảng đệm RecyclerView bất kể giá trị của clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • Khắc phục lỗi RecyclerView không cho phép hoạt động chặn cử chỉ chạm khi thao tác cuộn trước lồng khiến NestedScrollingParent cuộn (b/138668210, aosp/1105373). Điều này giúp ích cho các thư viện như ViewPager2.
  • RecyclerView hiện chuyển đến SCROLL_STATE_DRAGGING một cách nhất quán trước khi các thao tác cuộn trước lồng được gửi đi (aosp/1105373)
  • Thao tác cuộn trước lồng sẽ không còn được thực hiện trước khi thao tác vượt quá cử chỉ chạm (b/139530818, aosp/1105373)
  • Các đối số dxdy được gửi đến các thanh cuộn trước lồng sẽ bằng 0 khi RecyclerView không thể cuộn theo hướng đó (aosp/1105373)

Phiên bản 1.1.0-beta03

Ngày 15 tháng 8 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-beta03. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Thay đổi về API

  • Giờ đây, RecyclerView gửi khoảng cách cuộn qua View.onScrollChanged(int l, int t, int oldl, int oldt) để các dịch vụ hỗ trợ tiếp cận được thông báo chính xác về những thay đổi đối với thao tác cuộn. (aosp/1007823)

Sửa lỗi

  • Khắc phục một lỗi nghiêm trọng tràn ngăn xếp liên quan đến RecyclerView và hỗ trợ tiếp cận. (aosp/1099577)

Phiên bản 1.1.0-beta02

Ngày 7 tháng 8 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-beta02. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • RecyclerView hiện có thuộc tính kiểu mặc định: recyclerViewStyle, cho phép thiết lập kiểu mặc định trong giao diện của bạn

Sửa lỗi

  • Khắc phục lỗi RecyclerView không cho phép hoạt động chặn cử chỉ chạm khi thao tác cuộn khiến NestedScrollingParent cuộn. (b/131115697, aosp/1055911)

Phiên bản 1.1.0-beta01

Ngày 2 tháng 7 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-beta01. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • RecyclerView hiện tham gia thao tác cuộn lồng khi thao tác cuộn được bắt đầu thông qua sự kiện hỗ trợ tiếp cận. (aosp/973584)

Phiên bản 1.1.0-alpha06

Ngày 5 tháng 6 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-alpha06androidx.recyclerview:recyclerview-selection:1.1.0-alpha06. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • Thêm tính năng độ dời smoothScrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration), cho phép bạn chỉ định thời lượng bằng mili giây mà ảnh động nên diễn ra. (aosp/952807)

Thay đổi về API

  • GridLayoutManagerStaggeredGridLayoutManager không còn tự động gắn nhãn các mục dài toàn bộ làm tiêu đề cho mục đích hỗ trợ tiếp cận (aosp/969703)
  • Giữ nguyên thứ tự chọn (theo thời gian tạo) trong recyclerview-selection (aosp/937279)

Sửa lỗi

  • Khắc phục lỗi gây ra tình trạng RecyclerView hất đi với tốc độ không chính xác khi ở chế độ cuộn lồng ghép. (aosp/961642)
  • Thêm cải thiện độ ổn định cho recyclerview-selection (aosp/960213, aosp/926296)

Phiên bản 1.1.0-alpha05

Ngày 7 tháng 5 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-alpha05androidx.recyclerview:recyclerview-selection:1.1.0-alpha05. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • Bạn có thể ghi đè LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) để tuỳ chỉnh lượng khoảng không gian bố cục bổ sung cần thêm vào một trong hai bên của RecyclerView được liên kết. (aosp/931259)

Thay đổi về API

  • Thêm API để truy xuất DividerItemDecoration có thể vẽ (aosp/937282)
  • Ngừng sử dụng LinearLayout.getExtraLayoutSpace(RecyclerVew.State) và thay bằng một cơ chế mới, nhờ đó, hai bên đều có không gian bố cục bổ sung tuỳ chỉnh. Phương thức mới là LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

Sửa lỗi

  • Đã xoá tuỳ chọn Cử chỉ (aosp/940781)
  • Giữ nguyên thứ tự chọn (theo thời gian tạo) (b/128455535)

Phiên bản 1.1.0-alpha04

Ngày 3 tháng 4 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-alpha04. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Sửa lỗi

  • RV OnItemTouchListener's trước đây không thể chặn ACTION_UP, ngăn OnItemTouchListener chặn mã khác phản hồi ACTION_UP. Vấn đề này hiện đã được khắc phục: (aosp/916137)

Phiên bản 1.1.0-alpha03

Ngày 13 tháng 3 năm 2019

Phát hành androidx.recyclerview:recyclerview:1.1.0-alpha03. Bạn có thể xem danh sách đầy đủ các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • GridLayoutManager: Chọn sử dụng ước tính kích thước thanh cuộn GridLayoutManager có độ phân giải cao hơn (aosp/838836):
    • Sử dụng thông tin về độ dài để ước tính kích thước thanh cuộn cho GridLayoutManager.
    • Để bật, hãy gọi GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) với giá trị truyền vào là true.
    • Hãy xem tài liệu trên GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) để biết thêm thông tin.

Sửa lỗi

  • Hỗ trợ tiếp cận: Có một lỗi khiến ViewHolder được sử dụng lại một lần sau đó liên kết lại, ItemDelegate liên kết với RecyclerViewAccessibilityDelegate của RecyclerView không liên kết với itemView của ViewHolder, làm hỏng tính năng Hỗ trợ tiếp cận. Vấn đề này hiện đã được khắc phục (aosp/917740).

Phiên bản 1.1.0-alpha02

Ngày 30 tháng 1 năm 2019

Phát hành androidx.recyclerview:recyclerview 1.1.0-alpha02.

Thay đổi về API

  • RecyclerView.setLayoutFrozen(boolean)RecyclerView.isLayoutFrozen() không được dùng nữa và được thay thế bằng RecyclerView.suppressLayout(boolean)RecyclerView.isLayoutSuppressed(). (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) chính thức không được dùng nữa và sẽ gửi một IllegalArgumentException khi được gọi với giá trị không rỗng. (aosp/839414)

Sửa lỗi

  • Sửa lỗi trong RV trong đó SmoothScroller không bao giờ bị dừng (aosp/843741)
  • Khắc phục lỗi trong đó SCROLL_STATE_IDLE không thể gọi được ở cuối ảnh động cuộn. (aosp/812576)

Phiên bản 1.1.0-alpha01

Ngày 3 tháng 12 năm 2018

Phát hành androidx.recyclerview 1.1.0-alpha01androidx.recyclerview-selection 1.1.0-alpha01.

androidx.recyclerview 1.1.0-alpha01

Thay đổi về API

  • aosp/723649: RecyclerView hiện triển khai NestedScrollingChild3, cho phép nó nhận thông báo về thời điểm tất cả thành phần mẹ của nó cuộn lồng nhau ngừng sử dụng khoảng cách cuộn lồng nhau. Nếu mã của nhà phát triển hiện đang ghi đè RecyclerView.onNestedScroll(View, int, int, int, int, int), thì mã này có thể không còn được gọi và thay vào đó RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) sẽ bị ghi đè.

Sửa lỗi

  • Khắc phục sự cố khi sử dụng TransitionManager để thu gọn/mở rộng mục trong RecyclerView (b/37129527).
  • Khắc phục lỗi trong đó hoạt động của RecyclerView.OnItemTouchListener không nhất quán với hoạt động của onInterceptTouchEventonTouchEvent của hệ thống chế độ xem (aosp/721235)
  • Khắc phục một số lỗi yêu cầu đặc biệt liên quan đến thao tác cuộn mượt (aosp/729718, aosp/747168, aosp/812576)
  • Khắc phục chiến lược chụp nhanh trong PagerSnapHelper để xử lý các chế độ xem của thành phần con cháu không điển hình (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

Sửa lỗi

  • Khắc phục ConcurrentModificationException khi tập dữ liệu thay đổi theo lựa chọn xoá.

RecyclerView-Selection Phiên bản 1.1.0

RecyclerView-Selection Phiên bản 1.1.0

Ngày 27 tháng 1 năm 2021

Phát hành androidx.recyclerview:recyclerview-selection:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Những thay đổi lớn kể từ phiên bản 1.0.0

  • Nhiều cải tiến về độ ổn định.
  • Không dùng phương thức withGestureTooltypeswithPointerTooltypes trên SelectionTracker.Builder nữa. Các phương thức này sẽ bị xoá trong bản phát hành trong tương lai.

RecyclerView-Selection Phiên bản 1.1.0-rc03

Ngày 1 tháng 10 năm 2020

Phát hành androidx.recyclerview:recyclerview-selection:1.1.0-rc03. Phiên bản 1.1.0-rc03 bao gồm các thay đổi sau.

Sửa lỗi

Nhờ vào Stefan Kiesler đã kiểm tra các bản sửa lỗi và phản hồi.

  • Khắc phục vấn đề trong đó chế độ xem OnClickListeners của thành phần con cháu được gọi không theo dự tính trong thao tác lựa chọn đang hoạt động.
  • Trình xử lý chuột (lựa chọn theo dải) > Xử lý các thao tác cuộn không dự tính một cách nhẹ nhàng. (b/167821507)

RecyclerView-Selection Phiên bản 1.1.0-rc02

Ngày 2 tháng 9 năm 2020

Phát hành androidx.recyclerview:recyclerview-selection:1.1.0-rc02. Phiên bản 1.1.0-rc02 bao gồm các thay đổi sau.

Điểm nổi bật

  • Đã giải quyết một số lần hồi quy từ 1.0 trong quá trình xử lý đầu vào.
  • Cập nhật thư viện để tôn trọng onRequestDisallowInterceptTouchEvent, cho phép thư viện triển khai tốt với ItemTouchHelper (chỉ cần vuốt thư viện!).

Sửa lỗi

  • Khắc phục vấn đề trong đó thư viện lựa chọn hiểu sai các sự kiện GestureDetector dẫn đến số lượt nhấp bị mất trong quá trình lựa chọn đang hoạt động (b/165030422)
  • Khắc phục vấn đề không cập nhật lựa chọn để phản ánh các mục đã xoá khỏi trình chuyển đổi. (b/138932671)
  • Khắc phục vấn đề các mục RecyclerView kích hoạt các sự kiện onClick trong khi SelectionTracker có lựa chọn đang hoạt động (b/161162268)
  • Hiện đã được xử lý onRequestDisallowInterceptTouchEvent đúng cách
  • Khắc phục vấn đề phát hiện thấy ”Cannot call this method in a scroll callback” trong khi cuộn chuột trên Q
  • Cập nhật tài liệu (đặc biệt là trong StableIdKeyProvider) để nêu rõ các yêu cầu của phiên bản RecyclerView

Recyclerview-Selection Phiên bản 1.1.0-rc01

Ngày 5 tháng 2 năm 2020

Phát hành androidx.recyclerview:recyclerview-selection:1.1.0-rc01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề RecyclerView khó cuộn bằng lựa chọn cử chỉ nếu tương tác với AppBarLayout có thể cuộn (aosp/1193934)

RecyclerView-Selection Phiên bản 1.1.0-beta01

Ngày 4 tháng 12 năm 2019

Phát hành androidx.recyclerview:recyclerview-selection:1.1.0-beta01. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.

Cải thiện chung về độ ổn định liên quan đến việc kiểm tra phòng thủ và quản lý trạng thái nội bộ.

Sửa lỗi

  • Cải thiện quản lý trạng thái thư viện và diễn giải sự kiện HUỶ, giúp cải thiện độ ổn định.

Thay đổi về API

  • Thêm thông số loại khoá lựa chọn vào các lớp và phương thức bị thiếu.
  • Các phương thức không dùng nữa:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracker.Builder#withGestureTooltype
    • Các phương thức này đã tồn tại với ý định là nhà phát triển có thể liên kết con trỏ hoặc hoạt động cử chỉ với các loại công cụ khác thay vì chỉ các hoạt động mặc định*. Ý định đó rất hay, nhưng khi sử dụng thêm, rõ ràng là người dùng mong đợi hoạt động nhập liệu cần lrất cụ thể theo loại công cụ. Ngoài ra, bút cảm ứng "bị động" là loại công cụ dùng NGÓN TAY miễn là liên quan đến hệ thống nhập đầu vào Android.
    • Các loại công cụ mặc định là NGÓN TAY cho Cử chỉ và CHUỘT cho Con trỏ.