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