Example usage for android.support.v4.view.verticalview PagerAdapter POSITION_UNCHANGED

List of usage examples for android.support.v4.view.verticalview PagerAdapter POSITION_UNCHANGED

Introduction

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

Prototype

int POSITION_UNCHANGED

To view the source code for android.support.v4.view.verticalview PagerAdapter POSITION_UNCHANGED.

Click Source Link

Usage

From source file:com.open.verticalviewpager.DirectionalViewPager.java

void dataSetChanged() {
    // This method only gets called if our observer is attached, so mAdapter is non-null.

    boolean needPopulate = mItems.isEmpty() && mAdapter.getCount() > 0;
    int newCurrItem = -1;

    for (int i = 0; i < mItems.size(); i++) {
        final ItemInfo ii = mItems.get(i);
        final int newPos = mAdapter.getItemPosition(ii.object);

        if (newPos == PagerAdapter.POSITION_UNCHANGED) {
            continue;
        }/* www .j  a  va2 s .co m*/

        if (newPos == PagerAdapter.POSITION_NONE) {
            mItems.remove(i);
            i--;
            mAdapter.destroyItem(this, ii.position, ii.object);
            needPopulate = true;

            if (mCurItem == ii.position) {
                // Keep the current item in the valid range
                newCurrItem = Math.max(0, Math.min(mCurItem, mAdapter.getCount() - 1));
            }
            continue;
        }

        if (ii.position != newPos) {
            if (ii.position == mCurItem) {
                // Our current item changed position. Follow it.
                newCurrItem = newPos;
            }

            ii.position = newPos;
            needPopulate = true;
        }
    }

    if (newCurrItem >= 0) {
        // TODO This currently causes a jump.
        setCurrentItemInternal(newCurrItem, false, true);
        needPopulate = true;
    }
    if (needPopulate) {
        populate();
        requestLayout();
    }
}