| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 移动开发 -> <android>RecyclerView使用GridLayoutManager间距均分问题,别再修改xml了 -> 正文阅读 |
|
|
[移动开发]<android>RecyclerView使用GridLayoutManager间距均分问题,别再修改xml了 |
/**
* recyclerview设置GridLayoutManager 等分margin宽度时的自定义ItemDecoration
*/
public class RecyclerViewMarginDecoration extends RecyclerView.ItemDecoration {
private int mMargin;
int spanCount;
/**
* @param context 上下文
* @param spanCount 每行的item数量
* @param margin 均宽的magin值
*/
public RecyclerViewMarginDecoration(Context context, int spanCount, int margin) {
mMargin = ScreenUtil.dpAdapt((Activity) context, margin, 375);
this.spanCount = spanCount;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
RecyclerView.LayoutManager manager = parent.getLayoutManager();
if (manager instanceof GridLayoutManager) {
final GridLayoutManager gridManager = ((GridLayoutManager) manager);
GridLayoutManager.SpanSizeLookup spanSizeLookup = gridManager.getSpanSizeLookup();
int spanSize = spanSizeLookup.getSpanSize(parent.getChildAdapterPosition(view));
if (spanSize == 1) {
if (parent.getChildLayoutPosition(view) % spanCount == 0) {
outRect.set(mMargin, 0, mMargin / 2, 0);
} else {
int lineNumber = (parent.getChildLayoutPosition(view) / spanCount) + 1;//找到行数
int lastItem = lineNumber * spanCount - 1; //找到这一行的最后一个item位置
if (parent.getChildLayoutPosition(view) == lastItem) {
outRect.set(mMargin / 2, 0, mMargin, 0);
} else {
outRect.set(mMargin / 2, 0, mMargin / 2, 0);
}
}
}
}
}
}
使用: recyclerview.addItemDecoration(new RecyclerViewMarginDecoration(this,2,15)); |
|
|
| 移动开发 最新文章 |
| Vue3装载axios和element-ui |
| android adb cmd |
| 【xcode】Xcode常用快捷键与技巧 |
| Android开发中的线程池使用 |
| Java 和 Android 的 Base64 |
| Android 测试文字编码格式 |
| 微信小程序支付 |
| 安卓权限记录 |
| 知乎之自动养号 |
| 【Android Jetpack】DataStore |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/29 1:18:50- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |