Recycler View 作为滚动视图的一部分
Recycler View as part of a Scroll View
我正在开发一个 UI 与 Play 商店非常相似的应用。它被组织为一个在另一个之上的多个面板。首先,它有一个包含照片的面板。在它下面有另一个面板,其中包含一些文本和自定义背景颜色。在它下面有另一张照片,最后它有一个垂直方向的线性布局,其中包含一长串在运行时动态填充的小视图。自然地,我将所有这些都放在滚动视图中。
问题?线性布局的动态填充需要很长的处理器时间,并使我的应用程序在那些内部视图中没有响应 inflation。所以我想用 Recycler View 替换线性布局。而且表演很棒!
所以呢?好吧……并不是所有的东西都那么棒。我无法滚动 Recycler View,因为它位于 Scroll View 内。如果我删除滚动视图,则我无法滚动整个视图(有些东西不适合屏幕)。
解决此问题的最佳方法是什么?
不建议在 ScrollView
中使用 RecyclerView
或 ListView
,正是由于双滚动问题。 RecyclerView
非常健壮,可以接收页眉、页脚等。我看不出为什么整个布局不能在 RecyclerView
而不是 ScrollView
[=18= 内]
ViewHolder
实现可以包含根据下一个部分来扩充不同布局的逻辑。
伪代码:
即
if(currentAdapterItem == sectionA){
useLayoutA();
} else{
useLayoutB();
}
只需使用 NestedScrollView 而不是普通的 ScrollView
。它很好地处理了嵌套滚动。
我正在开发一个 UI 与 Play 商店非常相似的应用。它被组织为一个在另一个之上的多个面板。首先,它有一个包含照片的面板。在它下面有另一个面板,其中包含一些文本和自定义背景颜色。在它下面有另一张照片,最后它有一个垂直方向的线性布局,其中包含一长串在运行时动态填充的小视图。自然地,我将所有这些都放在滚动视图中。
问题?线性布局的动态填充需要很长的处理器时间,并使我的应用程序在那些内部视图中没有响应 inflation。所以我想用 Recycler View 替换线性布局。而且表演很棒!
所以呢?好吧……并不是所有的东西都那么棒。我无法滚动 Recycler View,因为它位于 Scroll View 内。如果我删除滚动视图,则我无法滚动整个视图(有些东西不适合屏幕)。
解决此问题的最佳方法是什么?
不建议在 ScrollView
中使用 RecyclerView
或 ListView
,正是由于双滚动问题。 RecyclerView
非常健壮,可以接收页眉、页脚等。我看不出为什么整个布局不能在 RecyclerView
而不是 ScrollView
[=18= 内]
ViewHolder
实现可以包含根据下一个部分来扩充不同布局的逻辑。
伪代码:
即
if(currentAdapterItem == sectionA){
useLayoutA();
} else{
useLayoutB();
}
只需使用 NestedScrollView 而不是普通的 ScrollView
。它很好地处理了嵌套滚动。