open-android / LoopViewPager

Android LoopViewPager 轮播控件
61 stars 16 forks source link

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

Open HappySKT opened 7 years ago

HappySKT commented 7 years ago

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)

HappySKT commented 7 years ago

@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时出现这个问题,