-
-
Notifications
You must be signed in to change notification settings - Fork 447
08.多类型Item
zhpanvip edited this page Dec 16, 2020
·
2 revisions
(1)继承BaseBannerAdapter,重写getViewType方法,根据需求返回相应的type,在getLayoutId方法中根据viewType返回相应的布局文件。然后在bindData中根据不同类型设置相应的数据。
public class MultiViewTypesAdapter extends BaseBannerAdapter<BannerData> {
@Override
protected void bindData(BaseViewHolder<BannerData> holder, BannerData data, int position, int pageSize) {
if (getViewType(position) == BannerData.TYPE_NEW) {
holder.setImageResource(R.id.image_view, data.getDrawable());
} else {
ImageView imageView = holder.findViewById(R.id.banner_image);
Glide.with(imageView).load(data.getImagePath()).placeholder(R.drawable.placeholder).into(imageView);
}
}
@Override
public int getLayoutId(int viewType) {
if (viewType == BannerData.TYPE_NEW) {
return R.layout.item_new_type;
}
return R.layout.item_net_image;
}
@Override
public int getViewType(int position) {
return mList.get(position).getType();
}
}
mViewPager
.setLifecycleRegistry(getLifecycle())
.setAdapter(new MultiViewTypesAdapter())
.create(dataList);