天天看點

ViewPager滑動到最後退出bug

解決方式: 通過在擴充卡中使用集合緩存  就算沒有出現bug  這樣寫也可以提高代碼的品質 

ViewPager滑動到最後退出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;

}

}集合緩存控件複用

繼續閱讀