Trying to implement circular view pager(Pagination). In the below code snippet, the setCurrentItem
method of the Viewpager
is set to first position(0th index), but it always moves to the second position(1st index).
Below is the code, ViewPagerListener.java
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int positionOfView, float positionOffset, int positionOffsetPixels) {
LogUtil.d(TAG, "START of onPageScrolled");
mPosition = positionOfView;
LogUtil.d(TAG, "COMPLETION of onPageScrolled");
}
@Override
public void onPageSelected(int position) {
LogUtil.d(TAG, "START of onPageSelected");
//LogUtil.d(TAG, "Position :" + position + ", " + "Count of pager adapter :" + (mViewPager.getAdapter().getCount() - 1));
LogUtil.d(TAG, "COMPLETION of onPageSelected");
}
@Override
public void onPageScrollStateChanged(int state) {
LogUtil.d(TAG, "START of onPageScrollStateChanged");
if (state == ViewPager.SCROLL_STATE_DRAGGING && mPosition == 5) {
LogUtil.d(TAG, "trying to move to first");
currentItemInViewPager(0); //---> This is the position where I am setting the view to move back to start position(0th index)
}
LogUtil.d(TAG, "COMPLETION of onPageScrollStateChanged");
}
});
@Override
public void currentItemInViewPager(int index) {
LogUtil.d(TAG, "START of currentItemInViewPager");
if (index == 0) {
if (getChildFragmentManager().findFragmentByTag("TAG_INTRO_FRAGMENT") != null) {
LogUtil.d(TAG, "Removed");
getChildFragmentManager().beginTransaction().remove(getChildFragmentManager().findFragmentByTag("TAG_INTRO_FRAGMENT")).commit();
}
mViewPager.setVisibility(View.VISIBLE);
mTabLayout.setVisibility(View.VISIBLE);
mPagerAdapter = new TutorialPagerAdapter(getChildFragmentManager(), this);
mViewPager.setAdapter(mPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager, true);
}
mViewPager.setCurrentItem(index);
LogUtil.d(TAG, "COMPLETION of currentItemInViewPager");
}
Please let me know if I am missing out anything
Thanks
在调用此方法之前,只需调用mViewPager.setCurrentItem(0);
If you want to keep the animation of paging u will need to override the pager instead or using a library as:
https://github.com/antonyt/InfiniteViewPager
Link to Reference:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.