Example usage for android.support.v4.view PagerAdapter registerDataSetObserver

List of usage examples for android.support.v4.view PagerAdapter registerDataSetObserver

Introduction

In this page you can find the example usage for android.support.v4.view PagerAdapter registerDataSetObserver.

Prototype

void registerDataSetObserver(DataSetObserver observer) 

Source Link

Usage

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();
}