wenzhihao123 / Android-Universal-ViewPager-Indicator

Android Universal ViewPager Indicator
46 stars 15 forks source link

attachToViewPager 中没有判断 itemCount 为零的情况 #1

Open thebitmin opened 4 years ago

thebitmin commented 4 years ago
public void attachToViewPager(ViewPager viewPager) {
        this.viewPager = viewPager;
        PagerAdapter pagerAdapter = viewPager.getAdapter();
        if (pagerAdapter != null) {
            //TODO 如果项目使用了阿里开源库,UltraViewPager,想要兼容需要用以下方式获取 itemCount,否则去除这个if条件
            if (pagerAdapter instanceof UltraViewPagerAdapter) {
                //从UltraViewPagerAdapter获取真实的个数
                itemCount = ((UltraViewPagerAdapter) pagerAdapter).getRealCount();
            } else {
                itemCount = pagerAdapter.getCount();
            }
            selection = viewPager.getCurrentItem() % itemCount;
            checkItemCount();
        }

        viewPager.addOnPageChangeListener(this);
    }
thebitmin commented 4 years ago
@Override
    public void onPageSelected(int i) {
        if (viewPager != null) {
            PagerAdapter pagerAdapter = viewPager.getAdapter();
            if (pagerAdapter != null) {
                selection = viewPager.getCurrentItem() % itemCount;
            }
        }
        postInvalidate();
    }