Android 开发 RecyclerView设置间距
2024-10-13 06:37:47
实现步骤
- 首先要创建一个类继承RecyclerView.ItemDecoration
- 然后重新这个类的getItemOffsets方法,删除方法里的super.getItemOffsets(outRect, view, parent, state);
- 在outRect里的属性分别设置对应方向间隔
- 在activity里new一个我们继承重写好的类,然后在mRecyclerView.addItemDecoration(new Divider);导入
设置全部item的间距例子
public class RecyclerViewSpacesItemDecoration extends RecyclerView.ItemDecoration { private HashMap<String, Integer> mSpaceValueMap; public static final String TOP_DECORATION = "top_decoration"; public static final String BOTTOM_DECORATION = "bottom_decoration"; public static final String LEFT_DECORATION = "left_decoration"; public static final String RIGHT_DECORATION = "right_decoration"; public RecyclerViewSpacesItemDecoration(HashMap<String, Integer> mSpaceValueMap) { this.mSpaceValueMap = mSpaceValueMap; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { if (mSpaceValueMap.get(TOP_DECORATION) != null) outRect.top = mSpaceValueMap.get(TOP_DECORATION); if (mSpaceValueMap.get(LEFT_DECORATION) != null) outRect.left = mSpaceValueMap.get(LEFT_DECORATION); if (mSpaceValueMap.get(RIGHT_DECORATION) != null) outRect.right = mSpaceValueMap.get(RIGHT_DECORATION); if (mSpaceValueMap.get(BOTTOM_DECORATION) != null) outRect.bottom = mSpaceValueMap.get(BOTTOM_DECORATION); } }
判断并且设置特定位置item的间距的例子
public class TLeaveItemDivider extends RecyclerView.ItemDecoration { @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { if (parent.getChildAdapterPosition(view) == state.getItemCount()-1){//判断是不是最后一个item outRect.top = 0; return; }else { outRect.top = UnitConversionUtil.dip2px(parent.getContext(),15); } } }
导入方法
mRecyclerView.addItemDecoration(new TLeaveItemDivider());
最新文章
- 网站定位之---根据IP获得区域
- HDU1671——前缀树的一点感触
- Redis学习手册(目录)
- [LeetCode] Delete Node in a BST 删除二叉搜索树中的节点
- java中+的使用
- html页面一段时间自动跳转
- linux &#39;more&#39; command.
- JavaScript ----------------- 原型式继承
- C# 模拟浏览器请求
- alias 命令详解
- Cisco配置aaa验证
- 【swift】ios中生成二维码
- 批量修改mac系统文件的可读写权限
- 527D.Clique Problem
- 不使用接口的 limit 控制分页的容量
- Python成长之路【第四篇】模块儿
- SharePoint 2013 新特性 (三) 破改式 &mdash;&mdash; 设计管理器的使用 [2.HTML变身模板页]
- 如何禁止VS显示“You have mixed tabs and spaces. Fix this?”
- 生成器&;迭代器,模块
- UIWebView加载CSS样式的html