私信发送成功
Watch Star Fork

vigiles / OptionalSpanSizeRecycleGridViewAndroidApache-2.0

可指定屏幕列数,每个item自适应占几列。可分组的横向流RecyclerView
克隆/下载
vigiles 最后提交于 2017-11-12 17:54 更新 README.md
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
2017-11-12 17:37
Loading...
README.md 1.22 KB

image

可以

自由指定屏幕宽分为几列,3列、4列? 每个Item根据其自身Bean中的width和height值进行运算得出占用几列,1列、2列、三列? 可以实现分组,只要在Bean中为groupId设置值即可。 看下面的代码,很容易理解。

用法

// 40个假数据
ArrayList<PictureBean > mPS = PictureFactory.getPictures(140);  // 注意Bean要实现ICVURatioBean接口

Collections.sort(mPS, new PictureCompartor());   // 0.重要!!!先按目标排版排序!!!

int columns = 6;                                 // 1.将屏幕分为多少列
CVURatioUtil.ratio(columns, mPS);                // 2.对datas进行处理

CVURatioLayoutManager mGridLytManager = new CVURatioLayoutManager(this, columns, mPS);  // 3.指定布局管理器

PictureAdapter mAdapter = new PictureAdapter(mPS);   // 普通适配器

RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.rlv);
mRecyclerView.setLayoutManager(mGridLytManager);
mRecyclerView.setAdapter(mAdapter);

原理

RecyclerView的GridLayoutManager中有个SpanSizeLookup对象,用来控制每个Item占用多少列。 事先计算好每个Item要显示多少列,用时直接取出来即可。

项目点评 (0)

你可以在登录后,对此项目发表评论