我有一个包含其他几个视图的ScrollView,我希望其中一个视图成为具有相同布局的其他视图的网格(例如ImageView)。
由于不建议在另一个内部使用一个可滚动视图,我希望此网格视图不可滚动,否则我会使用GridView或RecyclerView。
当然,我可以将网格视图放在其中一个标准布局(例如TableLayout)中,但是当存在许多网格项时,这可能会导致内存问题。 是否有任何标准方法或库允许为ScrollView内的非滚动视图回收视图?
答案 0 :(得分:2)
如果您尝试强制GridView
或RecyclerView
不可滚动(因此基本上您必须强制视图的尺寸显示所有元素),您将最终使用好像你使用TableLayout
的情况(所以你需要注意内存问题)。
如果禁用滚动可滚动(回收)元素(如GridView
/ RecyclerView
),则会禁用最重要的部分,使这些事情有效运行(这会使这些事情重用其视图)。
解决问题的方法是将Views
的{strong>其他 ScrollView
作为RecyclerView
的一部分来实施。您的RecyclerView
应该配备adapter
,可以为多种类型的Views
充气(您可以阅读它,例如here)。
答案 1 :(得分:0)
由于您使用的是RecyclerView
,因此可以使用NestedScrollView
代替ScrollView
,因为RecyclerView
从NestedScrollingChild
和{{1}延伸,所以应该会更好地播放}从NestedScrollView
延伸。
您可以使用的其他观点是VerticalGridView
或HorizontalGridView
,但正如您所说,您担心性能问题而且您可以向NestedScrollingParent
提供GridLayoutManager我会坚持那个。