GridSpacingItemDecoration

public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {    private int spanCount;    private int spacing;    private boolean includeEdge;    public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {        this.spanCount = spanCount;        this.spacing = spacing;        this.includeEdge = includeEdge;    }    @Override    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {        int position = parent.getChildAdapterPosition(view);        int column = position % spanCount;        if (includeEdge) {            outRect.left = spacing - column * spacing / spanCount;            outRect.right = (column + 1) * spacing / spanCount;            if (position < spanCount) {                outRect.top = spacing;            }            outRect.bottom = spacing;        } else {            outRect.left = column * spacing / spanCount;            outRect.right = spacing - (column + 1) * spacing / spanCount;//            if (position >= spanCount) {//                outRect.top = spacing;//            }            if (position < spanCount) {                outRect.top = spacing;            }            outRect.bottom = spacing;        }    }}

在初始化RecyclerView时 这样用

recyclerview.addItemDecoration(new GridSpacingItemDecoration(2, 30, true));recyclerview.setHasFixedSize(true);

更多相关文章

  1. android Notification动态更新
  2. Android(安卓)Telephony分析(四) ---- TelephonyManager详解
  3. LibGDX学习-LibGDX基本框架
  4. 【Android】 分享一个完整的项目,适合新手!
  5. Android启动流程分析(七) init.rc的解析
  6. Android的volley框架心得
  7. Android中使用fresco加载图片
  8. Android(安卓)Input(一)-相关模块初始化
  9. Android(安卓)接入Facebook实现第三方登陆教程(精简版)

随机推荐

  1. 勿忘初心
  2. GMT UTC CST ISO 夏令时 时间戳,都是些什
  3. 【前端词典】4 种滚动吸顶实现方式的比较
  4. FAlinux06密码破解
  5. 【前端词典】4 (+1)种滚动吸顶实现方式的比
  6. HTML5骏马奔跑动画
  7. 【前端词典】必备知识-原型与原型链
  8. 【前端词典】分享 8 个有趣且实用的 API
  9. jQuery五彩Tab选项卡动画
  10. 10个超绚丽的HTML5动画赏析