Skip to content Skip to sidebar Skip to footer

Viewpager Removeview() On The Child's Parent First

I'm currently testing out the viewpager in Android. Created a custom adapter, but I got this error when I tried to swipe the viewpager. Could anyone help me with this? public clas

Solution 1:

It's because you you are returning the imgFlag instead of itemView. You also need to add the itemView to the pager instead of adding the imgFlag.

The inflater sets the parent of imgFlag to itemView and then you try to add imgFlag to the viewpager without removing it from the itemView first.

Edit: It's most likely because of :

@OverridepublicbooleanisViewFromObject(View view, Objectobject) {
    return view == ((ImageView) object);
}

public class ViewPagerAdapter extends PagerAdapter { Context context; int[] flag; LayoutInflater inflater;

publicViewPagerAdapter(Context context, int[] flag) {
    this.context = context;
    this.flag = flag;
}

@Overridepublic int getCount() {
    return flag.length;
}

@OverridepublicbooleanisViewFromObject(View view, Objectobject) {
    return view == ((RelativeLayout) object);
}

@OverridepublicObjectinstantiateItem(ViewGroup container, int position) {
    ImageView imgflag;

    inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.viewpager_item,  container, false);
    //ImageView imageView = new ImageView(context);//imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);//imageView.findViewById(R.id.flag);
    imgflag = (ImageView) itemView.findViewById(R.id.flag);
    imgflag.setImageResource(flag[position]);
    ((ViewPager) container).addView(imgflag);

    return imgflag;
}


@OverridepublicvoiddestroyItem(ViewGroup container, int position, Objectobject) {
    ((ViewPager) container).removeView((RelativeLayout) object);

}

Post a Comment for "Viewpager Removeview() On The Child's Parent First"