在 ScrollView 内的不可滚动网格视图中回收视图
Recycling views in a non-scrollable grid view inside ScrollView
我有一个包含其他几个视图的 ScrollView,我希望其中一个视图是具有相同布局的其他视图(例如 ImageView)的网格。
由于不建议将一个可滚动视图置于另一个可滚动视图中,我希望此网格视图不可滚动,否则我会使用 GridView 或 RecyclerView。
我当然可以将网格视图放在标准布局之一(例如 TableLayout)中,但是当存在许多网格项时,这可能会导致内存问题。
是否有任何标准方法或库允许在 ScrollView 中回收非滚动视图的视图?
如果你试图强制 GridView
或 RecyclerView
不可滚动(所以基本上你必须强制视图的尺寸显示所有元素)你最终会与使用 TableLayout
相同的情况(因此您需要注意内存问题)。
如果您禁用可滚动(回收)元素的滚动,例如 GridView
/RecyclerView
,您将禁用使这些元素高效工作的最重要部分(使这些元素重用它们的视图)。
解决问题的方法是将 ScrollView
的 other Views
作为 RecyclerView
的一部分。你的 RecyclerView
应该配备 adapter
可以给多种类型的 Views
充气(你可以阅读它,例如 here)。
因为您使用的是 RecyclerView
,所以您可以使用 NestedScrollView
而不是 ScrollView
他们应该玩得更好,因为 RecyclerView
扩展自 NestedScrollingChild
和 NestedScrollView
从 NestedScrollingParent
.
扩展而来
您可以使用的其他视图是 VerticalGridView
or HorizontalGridView
but as you said you are worried about performance issues and you can provide a GridLayoutManager 到 RecyclerView
我会坚持使用。
我有一个包含其他几个视图的 ScrollView,我希望其中一个视图是具有相同布局的其他视图(例如 ImageView)的网格。
由于不建议将一个可滚动视图置于另一个可滚动视图中,我希望此网格视图不可滚动,否则我会使用 GridView 或 RecyclerView。
我当然可以将网格视图放在标准布局之一(例如 TableLayout)中,但是当存在许多网格项时,这可能会导致内存问题。 是否有任何标准方法或库允许在 ScrollView 中回收非滚动视图的视图?
如果你试图强制 GridView
或 RecyclerView
不可滚动(所以基本上你必须强制视图的尺寸显示所有元素)你最终会与使用 TableLayout
相同的情况(因此您需要注意内存问题)。
如果您禁用可滚动(回收)元素的滚动,例如 GridView
/RecyclerView
,您将禁用使这些元素高效工作的最重要部分(使这些元素重用它们的视图)。
解决问题的方法是将 ScrollView
的 other Views
作为 RecyclerView
的一部分。你的 RecyclerView
应该配备 adapter
可以给多种类型的 Views
充气(你可以阅读它,例如 here)。
因为您使用的是 RecyclerView
,所以您可以使用 NestedScrollView
而不是 ScrollView
他们应该玩得更好,因为 RecyclerView
扩展自 NestedScrollingChild
和 NestedScrollView
从 NestedScrollingParent
.
您可以使用的其他视图是 VerticalGridView
or HorizontalGridView
but as you said you are worried about performance issues and you can provide a GridLayoutManager 到 RecyclerView
我会坚持使用。