Android 在ScrollView内部的不可滚动网格视图中回收视图

Android 在ScrollView内部的不可滚动网格视图中回收视图,android,scrollview,android-recyclerview,Android,Scrollview,Android Recyclerview,我有一个包含多个其他视图的ScrollView,我希望其中一个视图是具有相同布局的其他视图的网格(例如ImageView) 由于不建议在另一个视图中包含一个可滚动视图,我希望这个网格视图不可滚动,否则我会使用GridView或RecyclerView 当然,我可以将网格视图放在一个标准布局(例如TableLayout)中,但当存在许多网格项时,这可能会导致内存问题。 是否有任何标准方法或库允许在ScrollView中为非scrollbale视图回收视图?如果您试图强制GridView或Recyc

我有一个包含多个其他视图的ScrollView,我希望其中一个视图是具有相同布局的其他视图的网格(例如ImageView)

由于不建议在另一个视图中包含一个可滚动视图,我希望这个网格视图不可滚动,否则我会使用GridView或RecyclerView

当然,我可以将网格视图放在一个标准布局(例如TableLayout)中,但当存在许多网格项时,这可能会导致内存问题。
是否有任何标准方法或库允许在ScrollView中为非scrollbale视图回收视图?

如果您试图强制
GridView
RecyclerView
不可滚动(因此基本上您必须强制视图的尺寸显示所有元素)您将遇到与使用
TableLayout
相同的情况(因此需要注意内存问题)

如果禁用可滚动(循环)元素(如
GridView
/
recycleriveview
)的滚动,则会禁用使这些东西高效工作的最重要部分(使这些东西重用其视图)


解决问题的方法是将
滚动视图的其他
视图
作为
回收视图
的一部分来实现。您的
回收视图
应配备
适配器
,该适配器可为多种类型的
视图
充气(例如,您可以阅读相关内容).

既然您使用的是
RecyclerView
,那么您可以使用它来代替
ScrollView
,因为
RecyclerView
扩展自
NestedScrollingChild
NestedScrollView
扩展自
NestedScrollingParent


您可以使用的其他视图是或,但正如您所说,您担心性能问题,您可以向
RecyclerView
提供一个链接。我会坚持这一点。

如果循环视图是scrollview的一部分,则循环视图滚动将不起作用。所以最好在滚动视图外使用循环视图。你能发布你的代码吗?这是一个有趣的想法,理论上几乎解决了我的问题。剩下的问题是,这个特殊视图应该可视化为网格,而其他视图的宽度=match_parent。因此,我想需要一个用于recycler视图的自定义布局管理器来支持这一点。你知道任何地方都有吗?这比你想象的要容易。只需使用常规的
GridLayoutManager
,将列计数(屏幕的“网格部分”)作为构造函数中的
spanCount
传递。然后使用
GridLayoutManager
SetPansizeLookup
方法指定适配器的哪些位置要用作
LinearLayoutManager
SetPansizeLookup
应返回
1
),以及要用作网格的位置(
setPansizeLookup
应该返回前面提到的列计数)。哦,哇,我不知道GridLayoutManager提供了此功能。鉴于此功能,可能不应该将其称为Grid…无论如何,感谢您的帮助!