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

时间:2015-07-22 05:58:12

标签: android scrollview android-recyclerview

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

由于不建议在另一个内部使用一个可滚动视图,我希望此网格视图不可滚动,否则我会使用GridView或RecyclerView。

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

2 个答案:

答案 0 :(得分:2)

如果您尝试强制GridViewRecyclerView不可滚动(因此基本上您必须强制视图的尺寸显示所有元素),您将最终使用好像你使用TableLayout的情况(所以你需要注意内存问题)。

如果禁用滚动可滚动(回收)元素(如GridView / RecyclerView),则会禁用最重要的部分,使这些事情有效运行(这会使这些事情重用其视图)。

解决问题的方法是将Views的{​​strong>其他 ScrollView作为RecyclerView的一部分来实施。您的RecyclerView应该配备adapter,可以为多种类型的Views充气(您可以阅读它,例如here)。

答案 1 :(得分:0)

由于您使用的是RecyclerView,因此可以使用NestedScrollView代替ScrollView,因为RecyclerViewNestedScrollingChild和{{1}延伸,所以应该会更好地播放}从NestedScrollView延伸。

您可以使用的其他观点是VerticalGridViewHorizontalGridView,但正如您所说,您担心性能问题而且您可以向NestedScrollingParent提供GridLayoutManager我会坚持那个。