目录
前言
最近有个项目需要做成类似外卖的首页分类导航那种效果,由于填充的数据是活的,另外还要求当数据少于一行的时候高度为一行高度,当数据行数大于指定行数时需要可以侧滑显示,因此花费了点时间自己写了一个控件,在此整理一下方便以后使用。
参考文章
我是参考https://www.gcssloop.com/tools/pager-grid-layoutmanager这篇文章写的控件,由于原代码不能实现自适应高度,因此我改写了一下测量控件高度部分的代码。
效果展示
使用方法
使用方法非常简单,首先你的数据实体类需要实现IndustryModule接口,然后可以适当调整R.layout.item_industry布局文件(id最好不修改,否则控件内部也需要做相应调整),然后设置数据设置点击事件即可。
private void initDatas() {
ArrayList<IndustryModule> industryBeans = new ArrayList<>();
for(int i = 0 ; i < 5 ; i ++){
industryBeans.add(new IndustryBean("条目" + i,"https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2001382863,1289112909&fm=26&gp=0.jpg"));
}
//设置数据
industryView.setDatas(industryBeans,R.layout.item_industry);
//设置点击事件
industryView.setOnItemSelectListener(new IndustryView.OnItemSelectListener<IndustryBean>() {
@Override
public void onItemSelect(IndustryBean model) {
ToastUtils.showShort(model.getName());
}
});
}