我有一個pageradapter,我用來顯示圖像幻燈片,但它崩潰時,我設置較低的屏幕限制。Pager適配器崩潰
這裏是我的代碼
public class ProjectPicturesAdapter extends PagerAdapter {
private List<String> pictures;
private LayoutInflater inflater;
private final RequestManager glide;
public ProjectPicturesAdapter(RequestManager glide, LayoutInflater inflater, List<String> pictures) {
this.pictures = pictures;
this.glide = glide;
this.inflater = inflater;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View image = inflater.inflate(R.layout.slider_image, container, false);
ImageView myImage = (ImageView) image.findViewById(R.id.image);
glide.load(pictures.get(position))
.centerCrop()
.crossFade()
.placeholder(R.drawable.project_placeholder)
.into(myImage);
container.addView(myImage);
return myImage;
}
@Override
public void destroyItem(ViewGroup container, int position, Object view) {
container.removeView((View) view);
}
@Override
public int getCount() {
return pictures.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
}
我正在初始化適配器的方式是這樣的
ProjectPicturesAdapter picturesAdapter = new
ProjectPicturesAdapter(Glide.with(this), LayoutInflater.from(this),
images);
ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
pager.setAdapter(picturesAdapter);
pager.setOffscreenPageLimit(1);
如果有2倍以上的圖像,然後它崩潰了,我可以隨時增加戲外極限但如果有20張圖片會發生什麼情況,我無法將屏幕外限制保持爲20.
我的故障日誌出現錯誤,說明指定的孩子已經有父母。您必須先調用子對象的父對象的removeView()。
使用FragmentStatePagerAdapter和嘗試。 –