实现步骤

  1.   首先要创建一个类继承RecyclerView.ItemDecoration
  2.   然后重新这个类的getItemOffsets方法,删除方法里的super.getItemOffsets(outRect, view, parent, state);
  3.   在outRect里的属性分别设置对应方向间隔
  4.   在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());

最新文章

  1. 网站定位之---根据IP获得区域
  2. HDU1671——前缀树的一点感触
  3. Redis学习手册(目录)
  4. [LeetCode] Delete Node in a BST 删除二叉搜索树中的节点
  5. java中+的使用
  6. html页面一段时间自动跳转
  7. linux &#39;more&#39; command.
  8. JavaScript ----------------- 原型式继承
  9. C# 模拟浏览器请求
  10. alias 命令详解
  11. Cisco配置aaa验证
  12. 【swift】ios中生成二维码
  13. 批量修改mac系统文件的可读写权限
  14. 527D.Clique Problem
  15. 不使用接口的 limit 控制分页的容量
  16. Python成长之路【第四篇】模块儿
  17. SharePoint 2013 新特性 (三) 破改式 &mdash;&mdash; 设计管理器的使用 [2.HTML变身模板页]
  18. 如何禁止VS显示“You have mixed tabs and spaces. Fix this?”
  19. 生成器&amp;迭代器,模块
  20. UIWebView加载CSS样式的html

热门文章

  1. Linux与Windows的几点区别
  2. bootstrap4.0
  3. ubuntu18安装网易云音乐
  4. 渗透测试学习 九、 MSsql注入上
  5. python 一些方法的时间测试
  6. [IOS][已越狱]配合网易云音乐,使用Bridge快速免iTunes导入音乐到“音乐”
  7. EXCEL 批量添加单元格名称
  8. dispatherServlet拦截所有请求,但是不拦截JSP和其他配置的servelt
  9. proxmox网络
  10. oracle中创建数据库用户,并授权