List of usage examples for android.support.v4.view PagerAdapter POSITION_NONE
int POSITION_NONE
To view the source code for android.support.v4.view PagerAdapter POSITION_NONE.
Click Source Link
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; }