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

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

Introduction

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

Prototype

int POSITION_UNCHANGED

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

Click Source Link

Usage

From source file:net.illusor.swipeplayer.activities.SwipePagerAdapter.java

@Override
public int getItemPosition(Object object) {
    if (object.equals(this.playlistFragment))
        return this.browserFolders.size();

    int index = this.browserFragments.indexOf(object);
    return index >= 0 ? PagerAdapter.POSITION_UNCHANGED : PagerAdapter.POSITION_NONE;
}

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

@Override
public int getItemPosition(Object o) {
    Integer result = positionDelta.get(o);
    if (result == null) {
        return (PagerAdapter.POSITION_UNCHANGED);
    }/*from w  ww .j  av a 2s.c  o  m*/
    return (result);
}

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

@Override
public int getItemPosition(Object o) {
    Integer result = positionDelta.get(o);

    if (result == null) {
        return (PagerAdapter.POSITION_UNCHANGED);
    }// w w w  .  j av  a  2s  .  co m

    return (result);
}

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());
        }//from   ww w.ja va 2  s. com
        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.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;
        }/*  w w  w . j  a v a 2  s . com*/

        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

/**
 * ??     // w  ww  .j av a2 s .  c om
 * 
 * @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:com.oguzbabaoglu.cardpager.CardPager.java

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

    final int adapterCount = pagerAdapter.getCount();
    boolean needPopulate = items.size() < offscreenPageLimit * 2 + 1 && items.size() < adapterCount;
    int newCurrItem = currentItem;

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

        if (newPos == PagerAdapter.POSITION_UNCHANGED) {
            continue;
        }/* w  w  w. jav  a  2s  . c  o  m*/

        if (newPos == PagerAdapter.POSITION_NONE) {
            items.remove(i);
            i--;

            if (!isUpdating) {
                pagerAdapter.startUpdate(this);
                isUpdating = true;
            }

            pagerAdapter.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, adapterCount - 1));
                needPopulate = true;
            }
            continue;
        }

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

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

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

    Collections.sort(items, ITEM_COMPARATOR);

    if (needPopulate) {
        // Reset our known page widths; populate will recompute them.
        final int childCount = getChildCount();
        for (int i = 0; i < childCount; i++) {
            final View child = getChildAt(i);
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            lp.widthFactor = 0.f;
        }

        setCurrentItemInternal(newCurrItem, false, true);
        requestLayout();
    }
}

From source file:com.jzh.stuapp.view.MyViewPager.java

void dataSetChanged() {

    boolean needPopulate = mItems.size() < 3 && mItems.size() < mAdapter.getCount();
    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  ww.  j  ava  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) {
                newCurrItem = Math.max(0, Math.min(mCurItem, mAdapter.getCount() - 1));
            }
            continue;
        }

        if (ii.position != newPos) {
            if (ii.position == mCurItem) {
                newCurrItem = newPos;
            }

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

    Collections.sort(mItems, COMPARATOR);

    if (newCurrItem >= 0) {
        setCurrentItemInternal(newCurrItem, false, true);
        needPopulate = true;
    }
    if (needPopulate) {
        populate();
        requestLayout();
    }
}

From source file:com.guoxin.githubdemo.image.LazyViewPager.java

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

    boolean needPopulate = mItems.size() < 3 && mItems.size() < mAdapter.getCount();
    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 v a  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;
        }
    }

    Collections.sort(mItems, COMPARATOR);

    if (newCurrItem >= 0) {
        setCurrentItemInternal(newCurrItem, false, true);
        needPopulate = true;
    }
    if (needPopulate) {
        populate();
        requestLayout();
    }
}