RecyclerView inside ScrollView, some items are not shown
I found the solution myself: replace ScrollView
with NestedScrollView
and keep recyclerView.setNestedScrollingEnabled(false)
. I don't know if this is what NestedScrollView
is made for but it works.
NOTICE:
NestedScrollView
is not a child ofScrollView
but ofFrameLayout
.- This solution will also bring some bugs with self-simulated
adjustResize
.
Comments
-
ywwynm almost 2 years
I had a RecyclerView in ScrollView like this:
<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>
And the
RecyclerView
's item is aRelativeLayout
, inside of which there is anEditText
and other views. Thelayout_height
of thatRelativeLayout
andEditText
is bothwrap_content
. User can input into thatEditText
without any limit of length/lines so that each item's height is different.Then I found that
getItemCount()
inAdapter
returns true value butonBindViewHolder()
is called of wrong times(less than it should be), thus not enough to show all items.I found that this will happen only if I wrote
recyclerView.setNestedScrollingEnabled(false)
. But I cannot remove this line. Because if I did so, theRecyclerView
won't scroll smoothly and is not harmonious with other views insideScrollView
andScrollView
itself.This occurs on 6.0 but not on 4.1.
I communicated with Google at this page: https://code.google.com/p/android/issues/detail?id=213914 and he told me this is a bug fix for
RecyclerView
. You can visit that page so that you can understand the question and my goal better(There is a small sample project to show the problem there). I don't agree with him even now and I want to solve the problem. Please help, thank you in advance.