首先按行然后按列填充 GridLayoutManager
Posted
技术标签:
【中文标题】首先按行然后按列填充 GridLayoutManager【英文标题】:populate GridLayoutManager first by row and then by column 【发布时间】:2017-06-23 21:44:32 【问题描述】:我在使用 GridLayoutManager 填充回收站视图时遇到问题。
我需要完成第一行,完成后去第二行。我做了一个重新排序列表的算法,因此它可以正确显示,并且我可以在不执行任何映射-取消映射操作的情况下点击该项目。这工作正常,但是当所有项目无需滚动即可显示在屏幕上时,就会出现问题。
例如,我有 4 个项目,我需要以 2 行网格布局(水平布局)显示它们。屏幕上有 3 个项目的空间,所以我需要它们在第一行,而第 4 个项目应该是第二行中唯一的一个。
给你一张我默认拥有的图片:
0 2
1 3
而我需要的是:
0 1 2
3
有什么想法吗?
编辑: 根据要求,这是我正在使用的代码:
GridLayoutManager layoutManager = new GridLayoutManager(getContext(),2,LinearLayoutManager.HORIZONTAL, false);
【问题讨论】:
你找到sloution了吗 【参考方案1】:在定义 gridLayoutManager 时,指定列数
RecyclerView rView = new RecyclerView(this);
rView.setLayoutManager(new GridLayoutManager(context, <your number of columns>));
将此值设置为 3(在您的情况下)将导致三列,两行。您的数组适配器从左到右填充字段,然后从上到下。
【讨论】:
如果做不到这一点,您可以将“null”或“”添加到您的数组中,直到它可以被您想要的列数整除(在本例中,总共 6 个元素)。这将在第二行中填充两个额外的列,但仍将它们添加到布局中。 第一种方法是我尝试过但没有奏效的方法。默认情况下,它不显示您提到的项目(检查问题是如何订购项目的)。第二种方法不应该工作!我结束了重新排序整个列表以匹配预期结果,但没有明确的解决方案来解决这个问题。还是谢谢! 你如何声明你的 gridLayoutManager,你能用你现有的代码更新你的答案吗? 已更新。记住我想要一个水平网格!以上是关于首先按行然后按列填充 GridLayoutManager的主要内容,如果未能解决你的问题,请参考以下文章
R语言创建使用矩阵(按行按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)