Tôi vừa cập nhật từ thư viện hỗ trợ recyclerview-v7: 23.1.1 để recyclerview-v7: 25.1.0.Recyclerview onBindViewHolder được gọi cho tất cả các mục khi bên trong LinearLayout với trọng số
Bố cục của tôi chứa 2 recylerview được chia nhỏ 50% trên màn hình. Mã xml như sau:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:scrollbars="none"/>
<android.support.v4.widget.Space
android:layout_width="@dimen/two_dp"
android:layout_height="match_parent"
android:background="@color/dark_gray"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:scrollbars="none"/>
</LinearLayout>
Bây giờ onBindViewHolder được gọi là cho tất cả các mục danh sách thay vì chỉ các thành phần có thể nhìn thấy. Điều này bắt đầu xảy ra sau khi cập nhật để hỗ trợ thư viện 25.1.0.
Nó hoạt động tốt nếu trọng lượng bị loại bỏ, nhưng cần có 2 recylcerviews cạnh nhau.
Làm cách nào để yêu cầu recyclerview tái chế chế độ xem thay vì tải tất cả?
CẬP NHẬT: Tính năng này hoạt động tốt trên các thiết bị Marshmallow trở lên. Vấn đề có trong Lollipop hoặc dưới đây. Bạn có thể tìm thấy một dự án demo tại đây:https://bitbucket.org/aniketit/recyclerviewtest
đăng mã có liên quan trên mãBindViewHolder –
@BradleyWilson onBindViewHolder được gọi là bất kể mã bên trong nó. Tôi đã thử với một hàm onBindViewHolder rỗng. –
okay, thật lạ lùng. Tôi có thể không thực sự giúp đỡ nhiều với chỉ xml để RecyclerViews của bạn, bạn có thể gửi bất kỳ mã bạn cảm thấy có liên quan hoặc có thể gây ra vấn đề (bố trí hàng mục vv vv) –