ScrollView里面的RecyclerView,有些项目没有显示

我在ScrollView中有一个RecyclerView,像这样:

<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> 

RecyclerView的项目是一个RelativeLayout ,里面有一个EditText和其他视图。 RelativeLayoutEditTextlayout_height都是wrap_content 。 用户可以input到该EditText没有任何长度/线的限制,使每个项目的高度是不同的。

然后我发现Adapter中的getItemCount()返回true值,但是onBindViewHolder()被调用错误次数(小于它应该是),因此不足以显示所有项目。

我发现这只会发生,如果我写recyclerView.setNestedScrollingEnabled(false) 。 但是我不能删除这一行。 因为如果我这样做, RecyclerView将不会顺利滚动,并与ScrollViewScrollView本身内的其他视图不协调。

这发生在6.0,而不是4.1。

我在这个页面上与Google进行了沟通: https : //code.google.com/p/android/issues/detail? RecyclerView他告诉我这是RecyclerView的错误修复。 您可以访问该页面,以便更好地理解问题和我的目标(有一个小示例项目来显示问题)。 我甚至不同意他的看法,我想解决这个问题。 请帮忙,提前谢谢。

Solutions Collecting From Web of "ScrollView里面的RecyclerView,有些项目没有显示"

我自己find了解决scheme:用NestedScrollViewreplaceScrollView ,并保持recyclerView.setNestedScrollingEnabled(false) 。 我不知道这是NestedScrollView是什么,但它的作品。

注意:

  1. NestedScrollView不是ScrollView的子项,而是FrameLayout
  2. 这个解决scheme也会带来一些自我模拟adjustResize错误。