-
前言
或许很多人会说,pageradapter封装现在网上一大推,也简单,或者说viewpager2都出现了,将来不久viewpager可能会被recyclerview替代带。
今天我带来不一样的封装思路
-
方式
- 已有view进行封
view都已经初始化完全,在丢给viewpager。这种是比较常见的
- 初始化view也放在viewpager里面
本文所讲的是第二种封装
-
思路
- 适配器需要存在一个数据接入源,和一个存储view的列表
public abstract class BasePagerAdapter<T> extends PagerAdapter {
//数据源
private List<T> list;
//view存储
private SparseArray<View> sparseArray;
public BasePagerAdapter(List<T> list) {
this.list = list==null?new ArrayList<T>():list;
this.sparseArray=new SparseArray<>();
}
}
- 适器的长度就由数据源来确定
@Override
public int getCount() {
return list.size();
}
-
适配器的判断方法
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
- 删除view的方法
@Override
public void destroyItem(@NonNull ViewGroup container, int position,