package com.mcxtzhang.zxtcommonlib.databinding.base.mul;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.view.ViewGroup;
import com.mcxtzhang.zxtcommonlib.databinding.base.BaseBindingAdapter;
import com.mcxtzhang.zxtcommonlib.databinding.base.BaseBindingVH;
import java.util.List;
/**
* 介绍:多种ItemType的Base类
* 泛型T:大部分情况可以不传。如果只有一种Bean类型,可以传入Bean,实现IBaseMulInterface接口。
* 或者传入IBaseMulInterface接口,可以拿到 getItemLayoutId(),
* 但是通过getItemViewType(int position),一样。所以建议不传。
* <p>
* 基类的泛型B:不用传,因为多种ItemType 肯定Layout长得不一样,那么Binding类也不一样,传入没有任何意义
* 作者:zhangxutong
* 邮箱:mcxtzhang@163.com
* 时间: 16/09/25.
*/
public class BaseMulTypeBindingAdapter<T extends IBaseMulInterface> extends BaseBindingAdapter<T, ViewDataBinding> {
public BaseMulTypeBindingAdapter(Context mContext, List<T> mDatas) {
super(mContext, mDatas);
}
@Override
public int getItemViewType(int position) {
return mDatas.get(position).getItemLayoutId();
}
@Override
public BaseBindingVH<ViewDataBinding> onCreateViewHolder(ViewGroup parent, int viewType) {
BaseBindingVH<ViewDataBinding> holder = new BaseBindingVH<ViewDataBinding>(DataBindingUtil.inflate(mInfalter, viewType, parent, false));
onCreateViewHolder(holder);
return holder;
}
}