Recyclerview
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-alpha02 |
recyclerview-selection | 1.1.0 | - | - | 1.2.0-alpha01 |
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.
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-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 đó.
Thay đổi về API
- Các API
ViewCompat.LAYOUT_DIRECTION_
không dùng nữa (I51710, b/317055535)
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)
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 trongminSdk
. (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
setDebugAssertionsEnabled
vàsetVerboseLoggingEnabled
mới có thể hỗ trợ gỡ lỗi các vấn đề liên quan đếnRecyclerView
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ọionBind
. (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-alpha02 và 1.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ụngMyComposeAdapter
vàDisposeOnViewTreeLifecycleDestroyed
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ảnMyComposeAdapter
vàDisposeOnViewTreeLifecycleDestroyed
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 trongConcatAdapter
trả về vị trí trình chuyển đổi chính xác khi được truy vấn trong lệnh gọi lạionViewRecycled
. (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.
- Trong quá trình thay đổi này,
ViewHolder.getAdapterPosition
không còn được dùng và thay thế bằng hai phương thức mới:- getBindingAdapterPosition trả về vị trí tương ứng với Trình chuyển đổi ràng buộc mục đó.
- getAbsoluteAdapterPosition trả về vị trí tương ứng với toàn bộ RecyclerView.
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ớiConfig.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
trongStaggeredGridLayoutManager
(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ànhConcatAdapter
để 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,
PagerSnapHelper
vàLinearSnapHelper
tính đến khoảng đệm RecyclerView bất kể giá trị củaclipToPadding
(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ộtIllegalArgumentException
khi được gọi với giá trị không rỗng. Thay vào đó, hãy sử dụngRecyclerView.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/1106715 và aosp/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,
PagerSnapHelper
vàLinearSnapHelper
tính đến khoảng đệm RecyclerView bất kể giá trị củaclipToPadding
(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ố
dx
vàdy
đượ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-alpha06
và androidx.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
GridLayoutManager
vàStaggeredGridLayoutManager
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-alpha05
và androidx.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ộnGridLayoutManager
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ử dụng thông tin về độ dài để ước tính kích thước thanh cuộn cho
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)
vàRecyclerView.isLayoutFrozen()
không được dùng nữa và được thay thế bằngRecyclerView.suppressLayout(boolean)
vàRecyclerView.isLayoutSuppressed()
. (aosp/839414)RecyclerView.setLayoutTransition(LayoutTransition)
chính thức không được dùng nữa và sẽ gửi mộtIllegalArgumentException
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-alpha01
và androidx.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 trongRecyclerView
(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ủaonInterceptTouchEvent
vàonTouchEvent
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
withGestureTooltypes
vàwithPointerTooltypes
trênSelectionTracker.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ỏ.