Tôi đã có một RecyclerView trong scrollview như thế này:RecyclerView bên scrollview, một số mặt hàng không được hiển thị
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--other stuff-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
<!--other stuff-->
</ScrollView>
Và item 's RecyclerView
là một RelativeLayout
, bên trong đó có một EditText
và quan điểm khác. Số điện thoại layout_height
của số đó RelativeLayout
và EditText
là cả hai wrap_content
. Người dùng có thể nhập vào đó EditText
mà không có bất kỳ giới hạn độ dài/dòng sao cho chiều cao của mỗi mục là khác nhau.
Sau đó, tôi thấy rằng getItemCount()
trong Adapter
trả về giá trị thực nhưng onBindViewHolder()
được gọi sai lần (ít hơn mức phải), do đó không đủ để hiển thị tất cả các mục.
Tôi thấy rằng điều này sẽ chỉ xảy ra nếu tôi viết recyclerView.setNestedScrollingEnabled(false)
. Nhưng tôi không thể loại bỏ dòng này. Bởi vì nếu tôi làm như vậy, RecyclerView
sẽ không cuộn trơn tru và không hài hòa với các chế độ xem khác bên trong số ScrollView
và ScrollView
chính nó.
Điều này xảy ra trên 6.0 nhưng không xảy ra trên 4.1.
Tôi đã liên lạc với Google tại trang này: https://code.google.com/p/android/issues/detail?id=213914 và anh ấy nói với tôi đây là bản sửa lỗi cho RecyclerView
. Bạn có thể truy cập trang đó để bạn có thể hiểu câu hỏi và mục tiêu của tôi tốt hơn (Có một dự án mẫu nhỏ để hiển thị vấn đề ở đó). Tôi không đồng ý với anh ấy ngay cả bây giờ và tôi muốn giải quyết vấn đề. Xin vui lòng giúp đỡ, cảm ơn bạn trước.
cố gắng đặt android: fillViewport = "true" trong scrollview –
@LucasPaolillo Tốt, điều đó không có tác dụng. – ywwynm
với android: fillViewPort = "true", thay đổi chiều cao bố cục tuyến tính thành match_parent –