List of usage examples for android.support.v4.view PagerAdapter registerDataSetObserver
void registerDataSetObserver(DataSetObserver observer)
From source file:com.qiscus.sdk.filepicker.util.TabLayoutHelper.java
private void handleOnAdapterChanged(ViewPager viewPager, PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (this.viewPager != viewPager) { return;/*from w w w . ja va 2 s. c om*/ } if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(internalDataSetObserver); } if (newAdapter != null) { newAdapter.registerDataSetObserver(internalDataSetObserver); } setTabsFromPagerAdapter(tabLayout, newAdapter, this.viewPager.getCurrentItem()); }
From source file:at.linuxtage.companion.widgets.SlidingTabLayout.java
/** * Sets the associated view pager. The ViewPager must have an adapter set. * The SlidingTabLayout will then listen for changes and update the tabs automatically. *///from w w w.j av a 2 s. com public void setViewPager(ViewPager viewPager) { if (mViewPager != null) { mViewPager.removeOnPageChangeListener(mPageChangeListener); mAdapter.unregisterDataSetObserver(mPagerAdapterObserver); } if (viewPager != null) { PagerAdapter adapter = viewPager.getAdapter(); if (adapter == null) { throw new IllegalArgumentException("ViewPager does not have a PagerAdapter set"); } mViewPager = viewPager; mAdapter = adapter; mPageChangeListener.reset(); viewPager.addOnPageChangeListener(mPageChangeListener); adapter.registerDataSetObserver(mPagerAdapterObserver); } else { mViewPager = null; mAdapter = null; } notifyDataSetChanged(); }
From source file:droidninja.filepicker.utils.TabLayoutHelper.java
protected void handleOnAdapterChanged(ViewPager viewPager, PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (mViewPager != viewPager) { return;/*from ww w . j a v a 2 s. c om*/ } if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mInternalDataSetObserver); } if (newAdapter != null) { newAdapter.registerDataSetObserver(mInternalDataSetObserver); } setTabsFromPagerAdapter(mTabLayout, newAdapter, mViewPager.getCurrentItem()); }
From source file:org.dmfs.android.view.DrawablePagerTitleStrip.java
void updateAdapter(PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mPageListener); mWatchingAdapter = null;/*w w w. j a va 2 s. c o m*/ } if (newAdapter != null) { if (!(newAdapter instanceof IDrawableTitlePagerAdapter)) { throw new IllegalArgumentException("Adapter must implement IDrawableTitlePagerAdapter"); } newAdapter.registerDataSetObserver(mPageListener); mWatchingAdapter = new WeakReference<PagerAdapter>(newAdapter); Context context = getContext(); // TODO: we should determine the number of images dynamically int newCount = Math.max(1, Math.min(9, newAdapter.getCount())); if (mImageViews == null || mImageViews.length < newCount) { ImageView[] newImages = new ImageView[newCount]; int start = 0; if (mImageViews != null) { System.arraycopy(mImageViews, 0, newImages, 0, mImageViews.length); start = mImageViews.length; } for (int i = start; i < newCount; ++i) { addView(newImages[i] = new ImageView(context)); } mImageViews = newImages; } else if (mImageViews.length > newCount) { ImageView[] newImages = new ImageView[newCount]; System.arraycopy(mImageViews, 0, newImages, 0, newCount); for (int i = newCount; i < mImageViews.length; ++i) { removeView(mImageViews[i]); } mImageViews = newImages; } } else { mImageViews = null; } if (mPager != null) { mLastKnownCurrentPage = -1; mLastKnownPositionOffset = -1; updateImages(mPager.getCurrentItem(), newAdapter); requestLayout(); } }
From source file:com.itsronald.widget.ViewPagerIndicator.java
/** * Update the ViewPager adapter being observed by the indicator. The * <p>//w ww.j a v a 2 s.co m * Taken from: * https://android.googlesource.com/platform/frameworks/support/+/nougat-release/v4/java/android/support/v4/view/PagerTitleStrip.java#319 * * @param oldAdapter The previous adapter being tracked by the indicator. * @param newAdapter The previous adapter that should be tracked by the indicator. */ private void updateAdapter(@Nullable PagerAdapter oldAdapter, @Nullable PagerAdapter newAdapter) { if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(pageListener); pagerAdapterRef = null; } if (newAdapter != null) { newAdapter.registerDataSetObserver(pageListener); pagerAdapterRef = new WeakReference<>(newAdapter); } if (viewPager != null) { lastKnownCurrentPage = -1; lastKnownPositionOffset = -1; updateIndicators(viewPager.getCurrentItem(), newAdapter); requestLayout(); } }
From source file:com.mixiaoxiao.mxxedgeeffect.widget.MxxPagerTitleStrip.java
void updateAdapter(PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mPageListener); mWatchingAdapter = null;//www .j a v a2 s. c o m } if (newAdapter != null) { newAdapter.registerDataSetObserver(mPageListener); mWatchingAdapter = new WeakReference<PagerAdapter>(newAdapter); mCircleIndicator.setItemCount(newAdapter.getCount()); } if (mPager != null) { mLastKnownCurrentPage = -1; mLastKnownPositionOffset = -1; updateText(mPager.getCurrentItem(), newAdapter); requestLayout(); } }
From source file:am.widget.tabstrip.TabStripHelper.java
private void onViewPagerAdapterChanged(@Nullable PagerAdapter oldAdapter, @Nullable PagerAdapter newAdapter) { if (mView instanceof TabStripView) ((TabStripView) mView).onViewPagerAdapterChanged(oldAdapter, newAdapter); else if (mView instanceof TabStripViewGroup) ((TabStripViewGroup) mView).onViewPagerAdapterChanged(oldAdapter, newAdapter); if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { mPosition = 0;//from www.j av a 2 s. co m mOffset = 0; if (oldAdapter != null) oldAdapter.unregisterDataSetObserver(this); if (newAdapter != null) newAdapter.registerDataSetObserver(this); if (mPager != null) mPosition = mPager.getCurrentItem(); updateView(true); } }
From source file:com.am.pagergradienttab.view.PagerGradientTabStrip.java
void updateAdapter(PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mPageListener); mWatchingAdapter = null;/*from w w w.j a v a 2 s . c o m*/ } tabs.clear(); if (newAdapter != null) { newAdapter.registerDataSetObserver(mPageListener); mWatchingAdapter = new WeakReference<PagerAdapter>(newAdapter); mLastKnownPosition = mPager.getCurrentItem(); currectPager = mLastKnownPosition; nextPager = mLastKnownPosition; for (int i = 0; i < newAdapter.getCount(); i++) { tabs.add(newAdapter.getPageTitle(i).toString()); } } if (mPager != null) { requestLayout(); } }
From source file:com.github.shareme.gwsmaterialuikit.library.material.widget.TabPageIndicator.java
/** * Set the ViewPager associate with this indicator view. * @param view The ViewPager view.//from w w w . j a v a2s . c om */ public void setViewPager(@Nullable ViewPager view) { if (mViewPager == view) return; if (mViewPager != null) { mViewPager.removeOnPageChangeListener(this); PagerAdapter adapter = mViewPager.getAdapter(); if (adapter != null) adapter.unregisterDataSetObserver(mObserver); } mViewPager = view; if (mViewPager != null) { PagerAdapter adapter = mViewPager.getAdapter(); if (adapter == null) throw new IllegalStateException("ViewPager does not have adapter instance."); adapter.registerDataSetObserver(mObserver); mViewPager.addOnPageChangeListener(this); notifyDataSetChanged(); onPageSelected(mViewPager.getCurrentItem()); } else mTabContainer.removeAllViews(); }
From source file:am.widget.basetabstrip.BaseTabStrip.java
/** * ?PagerAdapter// w w w . jav a2s . co m * * @param oldAdapter Adapter * @param newAdapter Adapter */ protected void bindPagerAdapter(PagerAdapter oldAdapter, PagerAdapter newAdapter) { if (oldAdapter != null) { oldAdapter.unregisterDataSetObserver(mPageListener); mWatchingAdapter = null; } if (newAdapter != null) { newAdapter.registerDataSetObserver(mPageListener); mWatchingAdapter = new WeakReference<>(newAdapter); } createItemBackgrounds(); onBindPagerAdapter(); checkCurrentItem(); requestLayout(); invalidate(); }