java - 如何使用 recyclerview 将网格布局水平居中?
问题描述
我正在尝试使用回收器视图将网格布局居中。
下面列出的代码是我尝试过的,但它搞砸了,但并没有真正理解它是如何工作的。
图标显示类似于下面的内容。
- 我..我
- 我..我..我
- 我..我..我
我想
- ..ii
- 我..我..我
- 我..我..我
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 6, RecyclerView.VERTICAL, true);
final int totalSize = Cards.size();
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int span;
span = totalSize % 3;
if (totalSize < 3) {
return 6;
} else if (span == 0 || (position <= ((totalSize - 1) - span))) {
return 2;
} else if (span == 1) {
return 6;
} else {
return 3;
}
}
});
recyclerView.setLayoutManager(gridLayoutManager);
解决方案
您在 getSpanSize 中返回的整数指定某个单元格应占用的列宽数。从您的代码来看,您似乎需要大部分元素占据布局宽度的三分之一
(position <= ((totalSize - 1) - span))
该代码在大多数情况下返回 true,最后几个单元格除外。我认为您编写的代码有缺陷,我无法理解您到底需要什么。如果您有可以分享的图片,它将极大地帮助您获得解决方案的帮助。
推荐阅读
- c# - 如何使用C#在firefox浏览器的新窗口中启动一个url
- javascript - Node Express app.js 为 GET 请求提供 404 错误
- laravel - Laravel 8 JetStream 引导程序 4
- excel - 如何在没有“内存不足”异常的情况下将大型 DataGridView 导出到 Excel?
- python - 使用包含索引列表python的变量检索列表元素
- pandas - 具有特定条件的 pandas DataFrame 中的加权平均值
- r - 当R中有多个值选项时,在每个ID中重复一个值
- python - 在 ItemSelectedChanged() 上获取当前项目 QListWidget
- automation - 是否可以通过某些脚本从交易页面获取数据?
- python - 如果这是可取的,那么在其中一个组件内访问类组合的正确方法是什么?