先填充网格布局管理器列,然后填充行

Posted

技术标签:

【中文标题】先填充网格布局管理器列,然后填充行【英文标题】:Fill grid layout manager columns first then rows 【发布时间】:2020-12-09 10:55:38 【问题描述】:

我有 7 个元素(这里以简化的方式)。如何设置网格布局以制作 2 列布局,其中前 4 个元素位于 column1 上,其余元素位于 column2 上。 像这样

   1   5
   2   6
   3   7
   4

我正在使用带有 GridLayout 的回收器视图

val itemDecoration = ItemOffsetDecoration(8)
recycler_view.layoutManager = GridLayoutManager(context, 2)
recycler_view.adapter = MyAdapter(context, items)
recycler_view.addItemDecoration(itemDecoration)

【问题讨论】:

可能正在使用自定义布局管理器 @Raghunandan 你能解释更多吗,如果可能的话,请分享任何例子。 类似:public void onBindViewHolder(final BadgeViewHolder holder, int position) // Pair -> left column if (position % 2 == 0 ) itemdecorator.get(position); else int computePosition = position = offset + (position / 2) - 1; itemdecorator.get(位置);其中 offset 是计算数据结构的大小和网格布局管理器中的行数(大小 / nbrOfRow 四舍五入到上限值)。 您找到解决方案了吗? @AyxanHaqverdili 还没有。 【参考方案1】:

我认为您可以通过添加合适的绑定方法来实现您的目标。您可以在方法中使用 if 语句根据持有人的位置正确地将数据绑定到持有人。

【讨论】:

以上是关于先填充网格布局管理器列,然后填充行的主要内容,如果未能解决你的问题,请参考以下文章

Recyclerview 网格布局管理器显示不必要的空间

Java图形化界面设计——布局管理器之GridLayout(网格布局)

网格组布局管理器(GridBagLayout)网格包布局管理器

如何设置数据网格列以填充数据网格集以填充和布局自动调整大小的网格?

Java AWT 图形界面编程LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

Java AWT 图形界面编程LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )