目錄
前言
最近有個(gè)項(xiàng)目需要做成類似外賣的首頁分類導(dǎo)航那種效果挺尿,由于填充的數(shù)據(jù)是活的奏黑,另外還要求當(dāng)數(shù)據(jù)少于一行的時(shí)候高度為一行高度,當(dāng)數(shù)據(jù)行數(shù)大于指定行數(shù)時(shí)需要可以側(cè)滑顯示编矾,因此花費(fèi)了點(diǎn)時(shí)間自己寫了一個(gè)控件熟史,在此整理一下方便以后使用。
參考文章
我是參考https://www.gcssloop.com/tools/pager-grid-layoutmanager這篇文章寫的控件窄俏,由于原代碼不能實(shí)現(xiàn)自適應(yīng)高度蹂匹,因此我改寫了一下測(cè)量控件高度部分的代碼。
效果展示
使用方法
使用方法非常簡(jiǎn)單凹蜈,首先你的數(shù)據(jù)實(shí)體類需要實(shí)現(xiàn)IndustryModule接口限寞,然后可以適當(dāng)調(diào)整R.layout.item_industry布局文件(id最好不修改,否則控件內(nèi)部也需要做相應(yīng)調(diào)整)仰坦,然后設(shè)置數(shù)據(jù)設(shè)置點(diǎn)擊事件即可履植。
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"));
}
//設(shè)置數(shù)據(jù)
industryView.setDatas(industryBeans,R.layout.item_industry);
//設(shè)置點(diǎn)擊事件
industryView.setOnItemSelectListener(new IndustryView.OnItemSelectListener<IndustryBean>() {
@Override
public void onItemSelect(IndustryBean model) {
ToastUtils.showShort(model.getName());
}
});
}