当前位置: 首页 > 知识库问答 >
问题:

ScrollView中的RecyclerView不工作

景光赫
2023-03-14

我正在尝试实现一个布局,它在同一布局中包含RecyclerView和ScrollView。

布局模板:

<RelativeLayout>
    <ScrollView android:id="@+id/myScrollView">
       <unrelated data>...</unrealated data>

           <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/my_recycler_view"
            />
    </ScrollView>


</RelativeLayout>

问题:我可以滚动到scrollview的最后一个元素

我尝试过的事情:

    ScrollView中的
  1. 卡片视图(现在ScrollView包含RecolyerView)-可以查看卡片直到RecolyerView
  2. 最初的想法是使用RecyclerView而不是使用ScrollView来实现这个ViewGroup,后者的视图类型之一是CardView,但我得到的结果与使用ScrollView完全相同

共有2个答案

濮俭
2023-03-14

我知道我已经迟到了,但即使谷歌已经修复了android.support.v7.widget.recyclerview之后,这个问题仍然存在

我现在遇到的问题是recyclerview中的layout_height=wrap_content没有计算scrollview中的所有项的高度,这种情况只发生在Marshmallow和nougat+(API 23、24、25)版本上。
(更新:用android.support.v4.widget.nestedscrollview替换scrollview对所有版本都适用。我不知为什么错过了测试接受的解决方案。在我的github项目中作为演示

在尝试了不同的方法后,我找到了解决此问题的方法。

以下是我的布局结构简而言之:

<ScrollView>
  <LinearLayout> (vertical - this is the only child of scrollview)
     <SomeViews>
     <RecyclerView> (layout_height=wrap_content)
     <SomeOtherViews>

解决办法是用relativeLayout包装recyclerView。别问我是怎么找到这个变通方法的!!!'\()_/'

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>

完整的示例可在GitHub Project-https://GitHub.com/amardeshbd/android-recycler-view-wrap-content上获得

下面是一个演示屏幕,显示了正在运行的修复程序:

嵇弘新
2023-03-14

使用NestedScrollView代替ScrollView

有关更多信息,请参阅NestedScrollView参考文档。

并将RecyclerView.SetNestedScrollingEnabled(false);添加到RecyclerView

 类似资料:
  • 我正在使用最新的支持设计(),23.2版本中的支持设计应该已经解决了ScrollView内部的RecyclerView问题。RecyclerView和ExpandableListView滚动都能很好地工作。但是当ExpandableListView太长时,我希望能够向上滚动布局,以便可以看到其余部分时,scrollview就无法工作。 片段: xml:

  • 我有一个<code>滚动视图,其中包含一个垂直<code>线性布局 这是一个地方,我在这里添加了一些称为“Section”的视图。“Section”是一个,其中包含和`RecyclerView'。 部分: 问题是,有时并不是真正的。因此,它创建了两种类型的问题(取决于我尝试使用的解决方案类型)。 > < li> 它可以是不可滚动的(因此它与屏幕高度匹配,我不能向下滚动它来查看里面的其余项目)。 它

  • 在< code>NestedScrollView的末尾有一个< code > endlesscrecyclerview 。< code>EndlessRecyclerView表示:当用户滚动到RecyclerView的底部时,它会加载更多数据。这已经在其他地方实现并运行了,但是当我将recyclerView放入< code>NestedScrollView时,< code>OnScrollList

  • 我试图在ScrollView中有一个RecyclerView。我的问题是,当我滚动RecyclerView时,这并不“平滑”:一旦你松开手指,滚动就会立即停止。 我在片段中的布局是: 滚动视图 线性布局 文本视图 回收r查看 按钮 我尝试禁用嵌套滚动: 以及mRecyclerView的包装内容: 获得我想要的平滑滚动,但通过这种方式,RecyclerView的高度比它应该的要小(并且它不再滚动,所

  • 我试图在滚动视图中显示水平的recyclerview项和垂直的recyclerview项 即使我使用android:fillViewport=“true”,Scrollview也无法工作