java - 网格布局管理器
问题描述
我正在开发一个 android 应用程序,它有一个带有两个视图持有者的 recyclerView 适配器,当视图类型为旅行者设置跨度计数 1 并且视图类型为文件夹设置跨度计数 2 但始终有 1 跨度计数时,我尝试制作这是网格布局管理器我用
GridLayoutManager gridLayout = new GridLayoutManager(this, 2);
gridLayout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (adapter.getItemViewType(position) == TYPE_FOLDER)
return 2;
else
return 1;
}
});
recyclerView.setLayoutManager(gridLayout);
这是在适配器中获取视图类型
@Override
public int getItemViewType(int position) {
Object obj = data.get(position);
if (obj instanceof Traveler)
return TYPE_TRAVELER;
else if (obj instanceof MainItem)
return TYPE_FOLDER;
throw new IllegalArgumentException("Invalid position " + position);
}
这个应用程序的屏幕截图
https://i.imgur.com/bPRbCyA.png “app_screenshot”
解决方案
推荐阅读
- c# - 如何在 C# 中将 System.ValueType 转换为泛型类型 (T)?
- google-cloud-platform - Google Cloud - 由于“没有足够的可用资源”而无法启动 VM 引擎
- r - R - 在多行中找到对应于一列最大值的行
- wordpress - 调用未定义函数 request_currencies()
- python - AttributeError:“维度”对象在使用 Keras Sequential Model.fit 时没有属性“log10”
- c++11 - Pytorch 扩展:由 g++ 编译的扩展与由 setuptools 构建的扩展之间的性能差异
- python - 如何实现并行,以这样的方式延迟,当输出低于阈值时并行化 for 循环停止?
- javascript - 为什么使用 react-graph-vis 文本会重叠?
- python - 如何在OpenCV中绘制与圆弧垂直的线
- powershell - 使用 Powershell 将图像插入 Powerpoint