MZBannerView icon indicating copy to clipboard operation
MZBannerView copied to clipboard

ViewPager展示不了data中的最后一个item内容

Open Mrxxy opened this issue 7 years ago • 2 comments

private final Runnable mLoopRunnable = new Runnable() {
        @Override
        public void run() {
            if(mIsAutoPlay){
                mCurrentItem = mViewPager.getCurrentItem();
                mCurrentItem++;
                if(mCurrentItem == mAdapter.getCount() - 1){
                    mCurrentItem = 0;
                    mViewPager.setCurrentItem(mCurrentItem,false);
                    mHandler.postDelayed(this,mDelayedTime);
                }else{
                    mViewPager.setCurrentItem(mCurrentItem);
                    mHandler.postDelayed(this,mDelayedTime);
                }
            }else{
                mHandler.postDelayed(this,mDelayedTime);
            }
        }
    };

中的 if(mCurrentItem == mAdapter.getCount() - 1)这样写永远不会设置最后一项item给viewPager,应改为 if(mCurrentItem == mAdapter.getCount())

Mrxxy avatar Aug 28 '17 07:08 Mrxxy

最后一个Item就是mAdapter.getCount() - 1 啊

pinguo-zhouwei avatar Aug 28 '17 07:08 pinguo-zhouwei

@pinguo-zhouwei mCurrentItem++后与mAdapter.getCount() - 1比较,当mCurrentItem为倒数第二个时,自增后的mCurrentItem结果是mAdapter.getCount() - 1,再与mAdapter.getCount() - 1比较肯定相等,此时会走mCurrentItem = 0,重新开始,也就是说永远不会走最后一项

Mrxxy avatar Aug 28 '17 15:08 Mrxxy