从 GridView 移动到 GridLayoutManager

Moving from GridView to GridLayoutManager

我正在尝试将我的应用程序从使用 GridView 转移到将 RecyclerView 与 GridLayoutManager 结合使用。我是 RecylcerViews 的新手,但已成功转换我的 ListViews,现在正在处理我的 GridView。我不确定的几件事:

我当前的 GridView 有一定数量的列,在运行时确定,每个网格列都具有相同的硬编码宽度。它可以水平和垂直滚动(我将 Gridview 包装在 Horizo​​ntalScrollView 中)。所以我基本上需要一个视图,其中包含一定数量的列,这些列的宽度是固定的,与屏幕宽度无关。

我在寻找为 GridLayoutManager 设置列(跨度)宽度的方法时遇到了问题,所以我认为这不是 GridLayoutManager 的方法。听起来好像它总是适合屏幕上的所有列,而不是让它们溢出屏幕?告诉 GridLayoutManager 我想要的最好方法是什么,例如,每列 150 个单位宽(dp 或像素)的 6 列?

对于双向滚动,听起来我可以使用我当前的方法,只需将我的 RecyclerView 包装在 Horizo​​ntalScrollView 中,对吗?

设置 RecyclerView wrap_content 的宽度并设置所需的跨度数。 (确保 RecyclerView 的父级也是 wrap_content。)当您在 RecyclerViewonCreateViewHolder() 中创建项目视图时,确保它是您想要的宽度. RecyclerView 将增长到视图持有者布局的宽度乘以跨度数。

您现在需要做的就是将所有内容包装在 HorizontalScrollView.