解決方式: 通過在擴充卡中使用集合緩存 就算沒有出現bug 這樣寫也可以提高代碼的品質
//ViewPager擴充卡
private class GuideAdapter extends PagerAdapter {
//集合緩存
private List <ImageView> cache = new ArrayList<>(1);
@Override
public Object instantiateItem(ViewGroup container, int position) {
//在集合為空的時候 建立View 并添加到集合中 在不為空的時候 直接從集合中取出并使用(這裡取出的是我們在destroyItem 複用的View)
if (cache.isEmpty()) {
ImageView imageView = new ImageView(container.getContext());
cache.add(imageView);
}
ImageView imageView = cache.remove(0);
//src
imageView.setImageResource(imags[position]);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//添加後 再移除
cache.add((ImageView) object);
container.removeView((View) object);
}
@Override
public int getCount() {
return imags == null ? 0 : imags.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}集合緩存控件複用