首先按行然后按列填充 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语言创建使用矩阵(按行按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)

如何在动态数据透视中先按行排序,然后按列排序

对矩阵按行和按列进行排序

Excel小技巧-你是否只知道表格按列排序?其实也可以按行排序!excel数据按行排序

二位数组按行按列遍历效率问题小细节

二位数组按行按列遍历效率问题小细节