我有一个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和尝试。 –