@Override public void onPageSelected(int position) { int realPosition = mAdapter.toRealPosition(position); if (mPreviousPosition != realPosition) { mPreviousPosition = realPosition; if (mOnPageChangeListeners != null) { for (int i = 0; i < mOnPageChangeListeners.size(); i++) { OnPageChangeListener listener = mOnPageChangeListeners.get(i); if (listener != null) { listener.onPageSelected(realPosition); } } } } }
@Override public void onPageScrollStateChanged(int state) { if (mAdapter != null) { int position = LoopViewPager.super.getCurrentItem(); int realPosition = mAdapter.toRealPosition(position); if (state == ViewPager.SCROLL_STATE_IDLE && (position == 0 || position == mAdapter.getCount() - 1)) { setCurrentItem(realPosition, false); } } if (mOnPageChangeListeners != null) { for (int i = 0; i < mOnPageChangeListeners.size(); i++) { OnPageChangeListener listener = mOnPageChangeListeners.get(i); if (listener != null) { listener.onPageScrollStateChanged(state); } } } } };
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int realPosition = position; if (mAdapter != null) { realPosition = mAdapter.toRealPosition(position); if (positionOffset == 0 && mPreviousOffset == 0 && (position == 0 || position == mAdapter.getCount() - 1)) { setCurrentItem(realPosition, false); } } mPreviousOffset = positionOffset; if (mOnPageChangeListeners != null) { for (int i = 0; i < mOnPageChangeListeners.size(); i++) { OnPageChangeListener listener = mOnPageChangeListeners.get(i); if (listener != null) { if (realPosition != mAdapter.getRealCount() - 1) { listener.onPageScrolled(realPosition, positionOffset, positionOffsetPixels); } else { if (positionOffset > .5) { listener.onPageScrolled(0, 0, 0); } else { listener.onPageScrolled(realPosition, 0, 0); } } } } } }
pageChangeListener.onPageSelected(position); binding.container.setCurrentItem(position, false);
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { mCurrentPage = position; mPageOffset = positionOffset; invalidate(); if (mListener != null) { mListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } }
@Override public void onPageScrollStateChanged(int state) { mScrollState = state; if (mListener != null) { mListener.onPageScrollStateChanged(state); } }
@Override public void onPageSelected(int position) { if (mSnap || mScrollState == ViewPager.SCROLL_STATE_IDLE) { mCurrentPage = position; mSnapPage = position; invalidate(); } if (mListener != null) { mListener.onPageSelected(position); } }
/** * Photos loading results callback. */ @Result(FlickrApi.LOAD_IMAGES_EVENT) private void onPhotosLoaded(List<Photo> photos, boolean hasMore) { // RecyclerView will continue scrolling when new items are added, we need to stop it. // Seems like this buggy behavior was introduced in support library v26.0.x final boolean onBottom = views.grid.findViewHolderForAdapterPosition(gridAdapter.getCount() - 1) != null; if (onBottom) { views.grid.stopScroll(); } // Setting new photos list gridAdapter.setPhotos(photos, hasMore); pagerAdapter.setPhotos(photos); gridAdapter.onNextItemsLoaded(); // Ensure listener called for 0 position pagerListener.onPageSelected(views.pager.getCurrentItem()); // Restoring saved state if (savedPagerPosition != NO_POSITION && savedPagerPosition < photos.size()) { pagerAdapter.setActivated(true); listAnimator.enter(savedPagerPosition, false); } if (savedGridPosition != NO_POSITION && savedGridPosition < photos.size()) { ((GridLayoutManager) views.grid.getLayoutManager()) .scrollToPositionWithOffset(savedGridPosition, savedGridPositionFromTop); } clearScreenState(); }
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int tabStripChildCount = mTabStrip.getChildCount(); if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) { return; } mTabStrip.onViewPagerPageChanged(position, positionOffset); View selectedTitle = mTabStrip.getChildAt(position); int extraOffset = (selectedTitle != null) ? (int) (positionOffset * selectedTitle.getWidth()) : 0; scrollToTab(position, extraOffset); if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } }
@Override public void onPageScrollStateChanged(int state) { mScrollState = state; if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageScrollStateChanged(state); } }
@Override public void onPageSelected(int position) { if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { mTabStrip.onViewPagerPageChanged(position, 0f); scrollToTab(position, 0); } if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageSelected(position); } }
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int tabStripChildCount = mTabStrip.getChildCount(); if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) { return; } mTabStrip.onViewPagerPageChanged(position, positionOffset); View selectedTitle = mTabStrip.getChildAt(position); int extraOffset = (selectedTitle != null) ? (int) (positionOffset * selectedTitle.getWidth()) : 0; scrollToTab(position, extraOffset); if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageScrolled(position, positionOffset, positionOffsetPixels); } }
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (OnPageChangeListener listener : pageChangeListenerList) listener.onPageScrolled(position, positionOffset, positionOffsetPixels); }
@Override public void onPageScrollStateChanged(int state) { for (OnPageChangeListener listener : pageChangeListenerList) listener.onPageScrollStateChanged(state); } };
@Override public void onPageSelected(int position) { for (OnPageChangeListener listener : pageChangeListenerList) listener.onPageSelected(position); }
public void setViewPager(@Nullable ViewPager viewPager) { mViewpager = viewPager; if (mViewpager != null && mViewpager.getAdapter() != null) { mLastPosition = -1; createIndicators(); mViewpager.removeOnPageChangeListener(mInternalPageChangeListener); mViewpager.addOnPageChangeListener(mInternalPageChangeListener); mInternalPageChangeListener.onPageSelected(mViewpager.getCurrentItem()); } }
@Override public void onPageSelected(int position) { if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { mTabStrip.onViewPagerPageChanged(position, 0f); scrollToTab(position, 0); } for (int i = 0; i < mTabStrip.getChildCount(); i++) { mTabStrip.getChildAt(i).setSelected(position == i); } if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageSelected(position); } }
@Override public void onPageScrollStateChanged(int state) { mScrollState = state; if (mViewPagerPageChangeListener != null) { mViewPagerPageChangeListener.onPageScrollStateChanged(state); } }