如果一行在android kotlin中的列数较少,如何将网格布局中的项目移动到中心?

Posted

技术标签:

【中文标题】如果一行在android kotlin中的列数较少,如何将网格布局中的项目移动到中心?【英文标题】:How to move items in a grid layout to center, if a row has less number of colums in android kotlin? 【发布时间】:2022-01-18 14:50:47 【问题描述】:

这不是网格布局,我使用自定义视图来创建它。谁能帮我用 gridview 创建这个。 GridLayout 甚至可以做到这一点吗?

【问题讨论】:

如果想在一个视图中不使用任何页脚,我认为可以使用 RecyclerView 和自定义 GridLayoutManager 实现此行为 【参考方案1】:

这可能通过GridLayoutManager 实现,也可能不实现,但没有直接的解决方案可以使用GridLayoutManager 来实现。我建议你在这里看看 Flexbox 布局管理器:

https://github.com/google/flexbox-layout

这是来自 Google,您可以使用它轻松完成您想要的事情。您可能需要稍微尝试一下这些属性,但我认为可以使用 justifyContent 属性来完成。

粗略的代码 sn-p 类似于

RecyclerView recyclerView = (RecyclerView) context.findViewById(R.id.recyclerview);
FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(context);
layoutManager.setFlexDirection(FlexDirection.ROW);
layoutManager.setJustifyContent(JustifyContent.SPACE_AROUND);
recyclerView.setLayoutManager(layoutManager);

【讨论】:

谢谢。这很棒。但是我们如何将最大列设置为 4 @KalyanRevuru 我认为这可能与您当时想要的相反。您可能需要进行一些搜索,因为如果 fix 具有固定列长度,则它与 GridLayoutManager 相同。我不确定这一点,但除非您想编写自己的自定义视图,否则将项目 FlexboxLayout 隔开是唯一的方法。【参考方案2】:

您可以添加页脚布局并将其他项目传递给它。

【讨论】:

以上是关于如果一行在android kotlin中的列数较少,如何将网格布局中的项目移动到中心?的主要内容,如果未能解决你的问题,请参考以下文章

如果表格只有一行,则 HTML 表格中的列宽会发生变化

如何获取二维数组的列数

android中gridView怎么在代码里动态设置每一列的宽度??

使用左连接的查询返回的行数较少

如何为最小的列数显示一行?

MS Access 2010 中的列数?