cuốn sách gpt4 ai đã làm

android - RecyclerView 日志语句 : W/RecyclerView: RecyclerView does not support scrolling to an absolute position. 改为使用 scrollToPosition

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:21:46 33 4
mua khóa gpt4 Nike

Tôi đang cập nhật một dự án Android cũ và bây giờ tôi nhận được báo cáo nhật ký này liên tục từ RecyclerView:

W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối. Thay vào đó hãy sử dụng ScrollToPosition

Xảy ra khi Recyclerview được lấp đầy và hiển thị lần đầu tiên hoặc khi các mục trong Recyclerview được làm mới.

nhật ký:

05-11 14:02:23.290 20209-20209/com.mydomain W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối.
05-11 14:02:23.290 20209-20209/com.mydomain W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối.
05-11 14:02:23.607 20209-20209/com.mydomain W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối.
05-11 14:02:23.607 20209-20209/com.mydomain W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối.
05-11 14:02:23.629 20209-20209/com.mydomain W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối.
[…]

Dòng này được lặp lại khoảng hơn 40 lần

Tuy nhiên, theo như tôi biết, trong mã của tôi, tôi không cuộn đến vị trí tuyệt đối. (trừ khi nó có thể là sản phẩm phụ của thứ khác)

Tôi không thể tìm thấy nhiều thông tin về cảnh báo này.

Ai có thể cung cấp cái nhìn sâu sắc?

câu trả lời hay nhất

Tôi cũng thấy điều tương tự, trong trường hợp của tôi là do thuộc tính XML

android:animateLayoutChanges="true"

Trên cha mẹ của RecyclerView - hoặc được đặt theo chương trình Bố cụcChuyển tiếpTrên Chế độ xem gốc, nó thực hiện điều tương tự. Nhìn thấy câu trả lời này cho một câu hỏi SO khác (Có vẻ như nó từng là một ngoại lệ chứ không phải là nhật ký cho phiên bản Android cũ hơn, chúng tôi đã rất may mắn ở mặt đó.)

Rõ ràng việc loại bỏ thuộc tính sẽ sửa nó. Nếu (giống như tôi) bạn muốn giữ nó, hãy thử tổ chức Chế độ xem của bạn theo cách mà cha mẹ trực tiếp của RecyclerView không có nó, ví dụ: Bắn tỉaĐược đề xuất trong bài viết tôi liên kết đến. Sao chép ví dụ của anh ấy ở đây trong trường hợp nó bị xóa:


xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/top_parent_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

android:id="@+id/header_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="ngang"
android:trọng lực="trung tâm"
android:có thể nhấp được="true"
android:animateLayoutChanges="true">

android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

android:id="@+id/header_arrow_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_rabity="end|center_vertical"/>

<>
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

Nếu (như tôi), bạn cần hoạt ảnh LayoutTransition trên RecyclerView, thì việc đặt Chế độ xem trình bao bọc giữa RecyclerView và Chế độ xem với hoạt ảnh bố cục là đủ để loại bỏ cảnh báo:


xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="dọc"
android:animateLayoutChanges="true"
android:layout_width="match_parent"
android:layout_height="match_parent">

android:layout_width="match_parent"
android:layout_height="wrap_content">
<>
android:layout_width="match_parent"
android:layout_height="wrap_content"/>


Về cơ bản, hãy đảm bảo thuộc tính android:animateLayoutChanges không nằm trên cha mẹ của RecyclerView.

Tuy nhiên, ngay cả khi có cảnh báo, hoạt ảnh thay đổi bố cục thực tế vẫn hoạt động tốt. Tôi không biết liệu tác động hiệu suất của việc thêm một lớp vào hệ thống phân cấp Chế độ xem có xứng đáng hay không. Một giải pháp tốt hơn có thể là phân lớp RecyclerView và ghi đè phương thức ScrollTo (x, y) để không in nhật ký, ví dụ: một câu trả lời khác cho cùng một câu hỏi SO .

Giới thiệu về android - Tuyên bố nhật ký RecyclerView: W/RecyclerView: RecyclerView không hỗ trợ cuộn đến vị trí tuyệt đối. Thay vì sử dụng ScrollToPosition, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/47125982/

33 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress