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

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

Introduction

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

Prototype

int POSITION_NONE

To view the source code for android.support.v4.view PagerAdapter POSITION_NONE.

Click Source Link

Usage

From source file:com.android.fastlibrary.view.fragmentswitcher.FragmentSwitcher.java

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

    final int adapterCount = mAdapter.getCount();
    mExpectedAdapterCount = adapterCount;
    boolean needPopulate = mCurrentFragment == null;
    int newCurrItem = mCurrentPosition;

    boolean isUpdating = false;
    final int newPos = mAdapter.getItemPosition(mCurrentFragment);

    if (newPos == PagerAdapter.POSITION_NONE) {
        if (!isUpdating) {
            mAdapter.startUpdate(this);
            isUpdating = true;/*from w  w w  .j a  va 2 s.  c o  m*/
        }

        mAdapter.destroyItem(this, mCurrentPosition, mCurrentFragment);
        mCurrentFragment = null;

        // Keep the current item in the valid range
        newCurrItem = Math.max(0, Math.min(mCurrentPosition, adapterCount - 1));
        needPopulate = true;
    } else if (mCurrentPosition != newPos) {
        // Our current item changed position. Follow it.
        newCurrItem = newPos;
        needPopulate = true;
    }

    if (isUpdating) {
        mAdapter.finishUpdate(this);
    }

    if (needPopulate) {
        setCurrentItemInternal(newCurrItem, true);
        requestLayout();
    }
}

From source file:com.s16.widget.FragmentSwitcher.java

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

    final int adapterCount = mAdapter.getCount();
    mExpectedAdapterCount = adapterCount;
    boolean needPopulate = mCurrentFragment == null;
    int newCurrItem = mCurrentPosition;

    boolean isUpdating = false;
    final int newPos = mAdapter.getItemPosition(mCurrentFragment);

    if (newPos == PagerAdapter.POSITION_NONE) {
        if (!isUpdating) {
            mAdapter.startUpdate(this);
            isUpdating = true;//w  w  w.ja  v a  2s  .c  o m
        }

        mAdapter.destroyItem(this, mCurrentPosition, mCurrentFragment);
        mCurrentFragment = null;

        // Keep the current item in the valid range
        newCurrItem = Math.max(0, Math.min(mCurrentPosition, adapterCount - 1));
        needPopulate = true;
    } else if (mCurrentPosition != newPos) {
        // Our current item changed position. Follow it.
        newCurrItem = newPos;
        needPopulate = true;
    }

    if (isUpdating) {
        mAdapter.finishUpdate(this);
    }

    if (needPopulate) {
        setCurrentItemInternal(newCurrItem, true);
        requestLayout();
    }
}

From source file:net.thetranquilpsychonaut.hashtagger.cwacpager.ArrayPagerAdapter.java

public void remove(int position) {
    int entriesCount = entries.size();
    positionDelta.clear();/*from w  ww.  j  a v  a  2s.  com*/
    Fragment f = getExistingFragment(position);
    if (f != null) {
        positionDelta.put(f, PagerAdapter.POSITION_NONE);
    }
    for (int i = position + 1; i < entriesCount; i++) {
        f = getExistingFragment(i);

        if (f != null) {
            positionDelta.put(f, i - 1);
        }
    }
    entries.remove(position);
    notifyDataSetChanged();
}

From source file:com.momock.binder.container.ViewPagerBinder.java

public void onBind(final ViewPager view, final IDataList<?> dataSource) {
    if (view != null) {
        if (refIndicator != null && refIndicator.get() != null) {
            refIndicator.get().setCount(dataSource.getItemCount());
        }// www. jav a 2 s.  c  o m
        view.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                position = adapter instanceof IRoundAdapter
                        ? ((IRoundAdapter) adapter).getRealPosition(position)
                        : position;
                Object item = dataSource.getItem(position);
                ItemEventArgs args = new ItemEventArgs(view, position, item);
                itemSelectedEvent.fireEvent(view, args);
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCurrentIndex(position);
                }
            }

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {
                viewPagerState = state;
            }
        });
        view.setOnTouchListener(new View.OnTouchListener() {
            GestureDetector detector = null;

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                view.getParent().requestDisallowInterceptTouchEvent(true);
                if (detector == null) {
                    detector = new GestureDetector(v.getContext(),
                            new GestureDetector.SimpleOnGestureListener() {

                                @Override
                                public boolean onSingleTapConfirmed(MotionEvent e) {
                                    Object item = dataSource.getItem(adapter instanceof IRoundAdapter
                                            ? ((IRoundAdapter) adapter).getRealPosition(view.getCurrentItem())
                                            : view.getCurrentItem());
                                    ItemEventArgs args = new ItemEventArgs(view, view.getCurrentItem(), item);
                                    itemClickedEvent.fireEvent(view, args);
                                    return true;
                                }

                            });
                }
                return detector.onTouchEvent(event);
            }
        });
        adapter = new PagerAdapter() {
            BlockingQueue<View> savedViews = new LinkedBlockingQueue<View>();

            @Override
            public int getCount() {
                return dataSource.getItemCount();
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == ((View) object);
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                View convertView = null;
                if (savedViews.size() > 0) {
                    convertView = savedViews.poll();
                }
                Object item = dataSource.getItem(position);
                if (convertView != null)
                    convertView.setTag(null);
                convertView = itemBinder.onCreateItemView(convertView, item, ViewPagerBinder.this);
                convertView.setTag(item);
                container.addView(convertView, 0);
                return convertView;
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                savedViews.add((View) object);
                container.removeView((View) object);
            }

            long lastDataSetChangedTick = 0;

            @Override
            public void notifyDataSetChanged() {
                lastDataSetChangedTick = System.nanoTime();
                getDataChangedEvent().fireEvent(this, new EventArgs());
                if (refIndicator != null && refIndicator.get() != null) {
                    refIndicator.get().setCount(dataSource.getItemCount());
                }
                super.notifyDataSetChanged();
                Logger.debug("ViewPagerBinder.PagerAdapter.notifyDataSetChanged");
            }

            long updateTick = 0;

            @Override
            public void startUpdate(ViewGroup container) {
                updateTick = System.nanoTime();
                super.startUpdate(container);
            }

            @Override
            public void setPrimaryItem(ViewGroup container, int position, Object object) {
                super.setPrimaryItem(container, position, object);
            }

            @Override
            public void finishUpdate(ViewGroup container) {
                super.finishUpdate(container);
                if (lastDataSetChangedTick < updateTick)
                    lastDataSetChangedTick = 0;
            }

            @Override
            public int getItemPosition(Object object) {
                return lastDataSetChangedTick == 0 ? PagerAdapter.POSITION_UNCHANGED
                        : PagerAdapter.POSITION_NONE;
            }
        };
        if (round)
            adapter = new RoundPagerAdapter(adapter);
        view.setAdapter(adapter);
        dataSource.addDataChangedHandler(new IEventHandler<DataChangedEventArgs>() {

            @Override
            public void process(Object sender, DataChangedEventArgs args) {
                adapter.notifyDataSetChanged();
            }

        });
        if (round)
            view.setCurrentItem(Math.max(100, dataSource.getItemCount() * 100), false);
    }
}

From source file:com.commonsware.cwac.pager.ArrayPagerAdapter.java

public void remove(int position) {
    positionDelta.clear();//  w w  w  . j ava2s . c o m

    Fragment f = getExistingFragment(position);

    if (f != null) {
        positionDelta.put(f, PagerAdapter.POSITION_NONE);
    }

    for (int i = position + 1; i < entries.size(); i++) {
        f = getExistingFragment(i);

        if (f != null) {
            positionDelta.put(f, i - 1);
        }
    }

    entries.remove(position);
    notifyDataSetChanged();
}

From source file:com.coleman.demo.view.page.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;
        }//from w w w  . j a  va  2 s  . c  o 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();
    }
}

From source file:cn.com.zzwfang.view.directionalviewpager.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;
        }/*from w w  w  . j a  va 2s.c  o 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();
    }
}

From source file:com.aincc.libtest.activity.flip.FlipViewGroup.java

/**
 * ??     /*from  ww w.ja  v  a  2  s  . c o m*/
 * 
 * @since 1.0.0
 */
private void dataSetChanged() {
    boolean needPopulate = items.size() < 3 && items.size() < adapter.getCount();
    int newCurrItem = -1;

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

        if (newPos == PagerAdapter.POSITION_UNCHANGED) {
            continue;
        }

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

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

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

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

    Collections.sort(items, COMPARATOR);

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

From source file:am.widget.tabstrip.TabStripHelper.java

boolean onTouchEvent(MotionEvent event) {
    if (mClickable) {
        final float x = event.getX();
        final float y = event.getY();
        final int action = event.getAction();
        switch (action) {
        case MotionEvent.ACTION_DOWN:
            mClickPosition = PagerAdapter.POSITION_NONE;
            mDownX = x;//w w  w.j a  v  a  2 s . c  om
            mDownY = y;
            break;
        case MotionEvent.ACTION_UP:
            mClickPosition = PagerAdapter.POSITION_NONE;
            if (mPager != null && getPageCount() > 0) {
                if (mView instanceof TabStripView)
                    mClickPosition = ((TabStripView) mView).getClickedPosition(mDownX, mDownY, x, y);
                else if (mView instanceof TabStripViewGroup)
                    mClickPosition = ((TabStripViewGroup) mView).getClickedPosition(mDownX, mDownY, x, y);
            }
            break;
        case MotionEvent.ACTION_CANCEL:
            mClickPosition = PagerAdapter.POSITION_NONE;
            break;
        }
    }
    if (mDoubleClickable) {
        final float x = event.getX();
        final float y = event.getY();
        final int action = event.getAction();
        switch (action) {
        case MotionEvent.ACTION_DOWN:
            mFirstDownX = mSecondDownX;
            mFirstDownY = mSecondDownY;
            mSecondDownX = x;
            mSecondDownY = y;
            break;
        case MotionEvent.ACTION_UP:
            final long downTime = event.getDownTime();
            if (mLastUpTime != 0 && downTime - mLastUpTime < DOUBLE_TAP_TIMEOUT) {
                mDoubleClicked = true;
                if (mView instanceof TabStripView)
                    mFirstPosition = ((TabStripView) mView).getClickedPosition(mFirstDownX, mFirstDownY,
                            mFirstUpX, mFirstUpY);
                else if (mView instanceof TabStripViewGroup)
                    mFirstPosition = ((TabStripViewGroup) mView).getClickedPosition(mFirstDownX, mFirstDownY,
                            mFirstUpX, mFirstUpY);
                if (mView instanceof TabStripView)
                    mSecondPosition = ((TabStripView) mView).getClickedPosition(mSecondDownX, mSecondDownY, x,
                            y);
                else if (mView instanceof TabStripViewGroup)
                    mSecondPosition = ((TabStripViewGroup) mView).getClickedPosition(mSecondDownX, mSecondDownY,
                            x, y);
                mLastUpTime = 0;
            } else {
                mDoubleClicked = false;
                mFirstPosition = PagerAdapter.POSITION_NONE;
                mSecondPosition = PagerAdapter.POSITION_NONE;
                mFirstUpX = x;
                mFirstUpY = y;
                mLastUpTime = event.getEventTime();
            }
            break;
        case MotionEvent.ACTION_CANCEL:

            break;
        }
    }

    return false;
}

From source file:am.widget.tabstrip.TabStripHelper.java

boolean performClick() {
    boolean result = false;
    if (mClickable) {
        if (mClickPosition != PagerAdapter.POSITION_NONE) {
            final int position = mClickPosition;
            mClickPosition = PagerAdapter.POSITION_NONE;
            if (mView instanceof TabStripView)
                result = ((TabStripView) mView).performClick(position, mClickSmoothScroll);
            else if (mView instanceof TabStripViewGroup)
                result = ((TabStripViewGroup) mView).performClick(position, mClickSmoothScroll);
        }/*from   w w w. ja  v  a2 s  .  c  o  m*/
    }
    if (mDoubleClickable) {
        if (mDoubleClicked) {
            final int first = mFirstPosition;
            final int second = mSecondPosition;
            mDoubleClicked = false;
            mFirstPosition = PagerAdapter.POSITION_NONE;
            mSecondPosition = PagerAdapter.POSITION_NONE;
            if (mView instanceof TabStripView)
                ((TabStripView) mView).performDoubleClick(first, second, mClickSmoothScroll);
            else if (mView instanceof TabStripViewGroup)
                ((TabStripViewGroup) mView).performDoubleClick(first, second, mClickSmoothScroll);
        }
    }
    return result;
}