Android(安卓)recyclerview 支持网格布局的间隙平均分割
16lz
2021-01-26
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);
更多相关文章
- android Notification动态更新
- Android(安卓)Telephony分析(四) ---- TelephonyManager详解
- LibGDX学习-LibGDX基本框架
- 【Android】 分享一个完整的项目,适合新手!
- Android启动流程分析(七) init.rc的解析
- Android的volley框架心得
- Android中使用fresco加载图片
- Android(安卓)Input(一)-相关模块初始化
- Android(安卓)接入Facebook实现第三方登陆教程(精简版)