open-android / LoopViewPager

Android LoopViewPager 轮播控件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

当使用自定义view,页数为3时,手动向右滑动程序崩溃

HappySKT opened this issue · comments

oidRuntime: FATAL EXCEPTION: main
Process: com.itheima.loopviewpager, PID: 31348
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:4438)
at android.view.ViewGroup.addView(ViewGroup.java:4274)
at android.support.v4.view.ViewPager.addView(ViewPager.java:1308)
at android.view.ViewGroup.addView(ViewGroup.java:4215)
at android.view.ViewGroup.addView(ViewGroup.java:4188)
at com.itheima.loopviewpager.LoopViewPager$LoopPagerAdapter.instantiateItem(LoopViewPager.java:187)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:836)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1020)
at android.support.v4.view.ViewPager.populate(ViewPager.java:918)
at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:1898)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2143)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2257)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2257)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2257)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2257)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2257)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2666)

@OverRide
public Object instantiateItem(ViewGroup container, int position) {
int index = position % imgLength;
View view = getDefaultItemView(index);
ViewGroup group = (ViewGroup) view.getParent();
if (group!=null){
group.removeView(view);
}
container.addView(view);
view.setClickable(false);
return view;
}

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      //  container.removeView((View) object);
    }

修改pageradapter之后此问题解决,但是仍不太懂为什么页数为3时出现这个问题,