【发布时间】:2016-04-01 15:26:07
【问题描述】:
我在顶部有一个标题,在它下面有一个 recyclerview。像这样:
<LinearLayout>
<LinearLayout>
<ImageView/>
<TextView/>
<TextView/>
</LinearLayout>
<RecyclerView/>
</LinearLayout>
我还有一个带有标题和两个回收视图的视图。像这样:
<LinearLayout>
<LinearLayout>
<ImageView/>
<TextView/>
<TextView/>
</LinearLayout>
<Recyclerview/>
<Recyclerview/>
</LinearLayout>
当我在第一个布局上的 recyclerview 上向上滚动时,标题停留在那里。当我向下滚动 recyclerview 时,我希望标题向上和离开视图。
在第二种布局中,每个列表都很短,可以单独显示在屏幕上,但第二个列表一起出现在屏幕外(i'm using this layout manager to make the layout wrap content)。这很好,但是当您在第一个 recyclerview 上向上滚动时,它只会尝试滚动自身(这是不能滚动的,因为没有可滚动的内容),因此您无法滚动查看屏幕外的内容。您也不能在标题上滚动以离开屏幕。
在这两种情况下,如何让 recyclerview 与其父级一起滚动?
【问题讨论】:
-
简短回答:您不应该让 RecyclerView 与其父级一起滚动。第二个可以通过将两个recyclerView合并为一个来修复(一个RecyclerView可以显示多个不同的viewType,所以应该没问题)
-
所以每个包含线性recyclerview + 其他视图的屏幕都只包含那个recyclerview,它由您想使用不同视图类型放在该屏幕上的所有视图组成?这是做事的唯一方法吗? @KonstantinLoginov
-
当然,有多种处理方式。 :-) 还有一些反模式,比如在 ListView 中禁用 Scroll 并将其放入 ScrollView (由于内存使用情况很糟糕 - 它不是回收视图)。一般来说,我会说,根据指南应该有 1 个控件,它在页面上具有垂直滚动。 Android 也有 CoordinatorLayout&CollapsingToolbarLayout 用于动画折叠标题。它可能适用于您的第一个问题(在此处阅读更多 antonioleiva.com/collapsing-toolbar-layout)
-
@KonstantinLoginov 感谢您的建议和链接!这正是我所需要的。
-
太棒了!然后,如果您不介意-我会将评论转换为实际答案:-)
标签: java android android-linearlayout android-recyclerview