public abstract class BasePagerAdapter<E> extends PagerAdapter {
private List<E> mDatas = new ArrayList<>();
public BasePagerAdapter(List<E> datas) {
if (datas != null) {
mDatas.addAll(datas);
}
}
@Override
public int getCount() {
return mDatas.size();
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ViewDataBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(container
.getContext()), getLayoutId(position), container, true);
onBindData(viewDataBinding, mDatas.get(position), position, mDatas);
return viewDataBinding.getRoot();
}
protected abstract int getLayoutId(int position);
protected void onBindData(ViewDataBinding viewDataBinding, E data, int position,
List<E> datas) {
viewDataBinding.setVariable(1, mDatas.get(position));
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
}
网友评论