Java Code Examples for android.widget.AdapterView#INVALID_POSITION
The following examples show how to use
android.widget.AdapterView#INVALID_POSITION .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SwipeLayout.java From UltimateAndroid with Apache License 2.0 | 6 votes |
private void performAdapterViewItemClick(MotionEvent e){ ViewParent t = getParent(); while(t != null) { if(t instanceof AdapterView){ AdapterView view = (AdapterView)t; int p = view.getPositionForView(SwipeLayout.this); if( p != AdapterView.INVALID_POSITION && view.performItemClick(view.getChildAt(p), p, view.getAdapter().getItemId(p))) return; }else{ if(t instanceof View && ((View) t).performClick()) return; } t = t.getParent(); } }
Example 2
Source File: MyGridView.java From Jreader with GNU General Public License v2.0 | 5 votes |
/** * 交换item,并且控制item之间的显示与隐藏效果 * @param moveX * @param moveY */ private void onSwapItem(int moveX, int moveY){ //获取我们手指移动到的那个item的position final int tempPosition = pointToPosition(moveX, moveY); //假如tempPosition 改变了并且tempPosition不等于-1,则进行交换 if(tempPosition != mDragPosition && tempPosition != AdapterView.INVALID_POSITION && mAnimationEnd ){ mDragAdapter.setHideItem(tempPosition); mDragAdapter.reorderItems(mDragPosition, tempPosition); final ViewTreeObserver observer = getViewTreeObserver(); observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { observer.removeOnPreDrawListener(this); animateReorder(mDragPosition, tempPosition); mDragPosition = tempPosition; //交换结束更新mDragPosition return true; } } ); } }
Example 3
Source File: SwipeLayout.java From AndroidSwipeLayout with MIT License | 5 votes |
private boolean performAdapterViewItemLongClick() { if (getOpenStatus() != Status.Close) return false; ViewParent t = getParent(); if (t instanceof AdapterView) { AdapterView view = (AdapterView) t; int p = view.getPositionForView(SwipeLayout.this); if (p == AdapterView.INVALID_POSITION) return false; long vId = view.getItemIdAtPosition(p); boolean handled = false; try { Method m = AbsListView.class.getDeclaredMethod("performLongPress", View.class, int.class, long.class); m.setAccessible(true); handled = (boolean) m.invoke(view, SwipeLayout.this, p, vId); } catch (Exception e) { e.printStackTrace(); if (view.getOnItemLongClickListener() != null) { handled = view.getOnItemLongClickListener().onItemLongClick(view, SwipeLayout.this, p, vId); } if (handled) { view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); } } return handled; } return false; }
Example 4
Source File: DragSortController.java From android-kernel-tweaker with GNU General Public License v3.0 | 5 votes |
public int viewIdHitPosition(MotionEvent ev, int id) { final int x = (int) ev.getX(); final int y = (int) ev.getY(); int touchPos = mDslv.pointToPosition(x, y); // includes headers/footers final int numHeaders = mDslv.getHeaderViewsCount(); final int numFooters = mDslv.getFooterViewsCount(); final int count = mDslv.getCount(); // Log.d("mobeta", "touch down on position " + itemnum); // We're only interested if the touch was on an // item that's not a header or footer. if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders && touchPos < (count - numFooters)) { final View item = mDslv.getChildAt(touchPos - mDslv.getFirstVisiblePosition()); final int rawX = (int) ev.getRawX(); final int rawY = (int) ev.getRawY(); View dragBox = id == 0 ? item : (View) item.findViewById(id); if (dragBox != null) { dragBox.getLocationOnScreen(mTempLoc); if (rawX > mTempLoc[0] && rawY > mTempLoc[1] && rawX < mTempLoc[0] + dragBox.getWidth() && rawY < mTempLoc[1] + dragBox.getHeight()) { mItemX = item.getLeft(); mItemY = item.getTop(); return touchPos; } } } return MISS; }
Example 5
Source File: MaterialRippleLayout.java From LoyalNativeSlider with MIT License | 5 votes |
private void clickAdapterView(AdapterView parent) { final int position = parent.getPositionForView(MaterialRippleLayout.this); final long itemId = parent.getAdapter() != null ? parent.getAdapter().getItemId(position) : 0; if (position != AdapterView.INVALID_POSITION) { parent.performItemClick(MaterialRippleLayout.this, position, itemId); } }
Example 6
Source File: DragSortController.java From google-authenticator-android with Apache License 2.0 | 5 votes |
public int viewIdHitPosition(MotionEvent ev, int id) { final int x = (int) ev.getX(); final int y = (int) ev.getY(); int touchPos = mDslv.pointToPosition(x, y); // includes headers/footers final int numHeaders = mDslv.getHeaderViewsCount(); final int numFooters = mDslv.getFooterViewsCount(); final int count = mDslv.getCount(); // Log.d("mobeta", "touch down on position " + itemnum); // We're only interested if the touch was on an // item that's not a header or footer. if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders && touchPos < (count - numFooters)) { final View item = mDslv.getChildAt(touchPos - mDslv.getFirstVisiblePosition()); final int rawX = (int) ev.getRawX(); final int rawY = (int) ev.getRawY(); View dragBox = id == 0 ? item : (View) item.findViewById(id); if (dragBox != null) { dragBox.getLocationOnScreen(mTempLoc); if (rawX > mTempLoc[0] && rawY > mTempLoc[1] && rawX < mTempLoc[0] + dragBox.getWidth() && rawY < mTempLoc[1] + dragBox.getHeight()) { mItemX = item.getLeft(); mItemY = item.getTop(); return touchPos; } } } return MISS; }
Example 7
Source File: HeaderFooterViewListAdapter.java From ProjectX with Apache License 2.0 | 5 votes |
/** * 获取子项的第一项position(包含HeaderItem与FooterItem,不包含HeaderView及其占用的空白View) * 原Adapter无Item并且也无HeaderItem与FooterItem时,返回 AdapterView.INVALID_POSITION * * @return 子项的第一项position */ public int getFirstItemPosition() { // adapter有值或者有HeaderItem if ((mAdapter != null && mAdapter.getCount() > 0) || getHeaderItemsCount() > 0 || getFooterItemsCount() > 0) return getHeaderViewsCount(); else return AdapterView.INVALID_POSITION; }
Example 8
Source File: LayoutAdapter.java From PTVGlass with MIT License | 5 votes |
@Override public int getPosition(Object item) { for (int i = 0; i < ThemeCards.values().length; i++) { if (getItem(i).equals(item)) { return i; } } return AdapterView.INVALID_POSITION; }
Example 9
Source File: DragSortController.java From chromadoze with GNU General Public License v3.0 | 5 votes |
public int viewIdHitPosition(MotionEvent ev, int id) { final int x = (int) ev.getX(); final int y = (int) ev.getY(); int touchPos = mDslv.pointToPosition(x, y); // includes headers/footers final int numHeaders = mDslv.getHeaderViewsCount(); final int numFooters = mDslv.getFooterViewsCount(); final int count = mDslv.getCount(); // Log.d("mobeta", "touch down on position " + itemnum); // We're only interested if the touch was on an // item that's not a header or footer. if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders && touchPos < (count - numFooters)) { final View item = mDslv.getChildAt(touchPos - mDslv.getFirstVisiblePosition()); final int rawX = (int) ev.getRawX(); final int rawY = (int) ev.getRawY(); View dragBox = id == 0 ? item : (View) item.findViewById(id); if (dragBox != null) { dragBox.getLocationOnScreen(mTempLoc); if (rawX > mTempLoc[0] && rawY > mTempLoc[1] && rawX < mTempLoc[0] + dragBox.getWidth() && rawY < mTempLoc[1] + dragBox.getHeight()) { mItemX = item.getLeft(); mItemY = item.getTop(); return touchPos; } } } return MISS; }
Example 10
Source File: HeaderFooterViewListAdapter.java From ProjectX with Apache License 2.0 | 5 votes |
/** * 获取FooterView的集合位置(FooterView占用的空白位置也算作FooterView) * 返回 AdapterView.INVALID_POSITION 表明其对应的不是FooterView * * @param position 位置 * @return FooterView的集合位置 */ public int positionToFooterViewIndex(int position) { int startPosition = getHeaderViewsCount() + getHeaderItemsCount() + getItemCount() + getFooterItemsCount() + unusedPositionCount; if (getFooterViewsCount() > 0 && position >= startPosition) { return (position - startPosition) / mNumColumns; } else { return AdapterView.INVALID_POSITION; } }
Example 11
Source File: HeaderFooterViewListAdapter.java From ProjectX with Apache License 2.0 | 5 votes |
/** * 获取HeaderView的集合位置(HeaderView占用的空白位置也算作HeaderView) * 返回 AdapterView.INVALID_POSITION 表明其对应的不是HeaderView * * @param position 位置 * @return HeaderView的集合位置 */ public int positionToHeaderViewIndex(int position) { if (getHeaderViewsCount() > 0 && position < getHeaderViewsCount()) { return position / mNumColumns; } else { return AdapterView.INVALID_POSITION; } }
Example 12
Source File: MyGridView.java From Jreader with GNU General Public License v2.0 | 5 votes |
public void initCreatDragImage(int position) { //根据按下的X,Y坐标获取所点击item的position mDragPosition = position; Log.d("mDagPosition is", "" + mDragPosition); if(mDragPosition == AdapterView.INVALID_POSITION){ return ; } //根据position获取该item所对应的View mStartDragItemView = getChildAt(mDragPosition - getFirstVisiblePosition()); //获取DragGridView自动向上滚动的偏移量,小于这个值,DragGridView向下滚动 mDownScrollBorder = getHeight() / 5; //获取DragGridView自动向下滚动的偏移量,大于这个值,DragGridView向上滚动 mUpScrollBorder = getHeight() * 4/5; //开启mDragItemView绘图缓存 mStartDragItemView.setDrawingCacheEnabled(true); //获取mDragItemView在缓存中的Bitmap对象 mDragBitmap = Bitmap.createBitmap(mStartDragItemView.getDrawingCache()); //这一步很关键,释放绘图缓存,避免出现重复的镜像 mStartDragItemView.destroyDrawingCache(); }
Example 13
Source File: HeaderFooterViewListAdapter.java From ProjectX with Apache License 2.0 | 5 votes |
/** * 获取末个HeaderItem位置 * 无HeaderItem则返回 AdapterView.INVALID_POSITION * * @return 末个HeaderItem位置 */ @SuppressWarnings("unused") public int getLastHeaderItemPosition() { // Header if (mHeaderItemInfo.size() > 0) { return getHeaderViewsCount() + getHeaderItemsCount() - 1; } else { return AdapterView.INVALID_POSITION; } }
Example 14
Source File: SwipeLayout.java From AndroidSwipeLayout with MIT License | 5 votes |
private void performAdapterViewItemClick() { if (getOpenStatus() != Status.Close) return; ViewParent t = getParent(); if (t instanceof AdapterView) { AdapterView view = (AdapterView) t; int p = view.getPositionForView(SwipeLayout.this); if (p != AdapterView.INVALID_POSITION) { view.performItemClick(view.getChildAt(p - view.getFirstVisiblePosition()), p, view .getAdapter().getItemId(p)); } } }
Example 15
Source File: DragGrid.java From TopGrid with Apache License 2.0 | 5 votes |
@Override public boolean onTouchEvent(MotionEvent ev) { boolean bool = true; if (dragImageView != null && dragPosition != AdapterView.INVALID_POSITION) { // 移动时候的对应x,y位置 bool = super.onTouchEvent(ev); int x = (int) ev.getX(); int y = (int) ev.getY(); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: downX = (int) ev.getX(); windowX = (int) ev.getX(); downY = (int) ev.getY(); windowY = (int) ev.getY(); break; case MotionEvent.ACTION_MOVE: onDrag(x, y, (int) ev.getRawX(), (int) ev.getRawY()); if (!isMoving) { OnMove(x, y); } if (pointToPosition(x, y) != AdapterView.INVALID_POSITION) { break; } break; case MotionEvent.ACTION_UP: stopDrag(); onDrop(x, y); requestDisallowInterceptTouchEvent(false); break; default: break; } } return super.onTouchEvent(ev); }
Example 16
Source File: DragGridView.java From Jreader with GNU General Public License v2.0 | 4 votes |
@Override public boolean dispatchTouchEvent(MotionEvent ev) { switch(ev.getAction()){ case MotionEvent.ACTION_DOWN: mDownX = (int) ev.getX(); mDownY = (int) ev.getY(); //根据按下的X,Y坐标获取所点击item的position mDragPosition = pointToPosition(mDownX, mDownY); // Log.d("mDagPosition is", "" + mDragPosition); if(mDragPosition == AdapterView.INVALID_POSITION){ return super.dispatchTouchEvent(ev); } //使用Handler延迟dragResponseMS执行mLongClickRunnable, // 大于20dp才执行mLongClickRunnable避免与Drawlayout发生冲突 int panding = (int) CommonUtil.convertDpToPixel(mcontext,20); if(mDownX > panding) { mHandler.postDelayed(mLongClickRunnable, dragResponseMS); } //根据position获取该item所对应的View mStartDragItemView = getChildAt(mDragPosition - getFirstVisiblePosition()); // mPoint2ItemTop = mDownY - mStartDragItemView.getTop(); mPoint2ItemLeft = mDownX - mStartDragItemView.getLeft(); mOffset2Top = (int) (ev.getRawY() - mDownY); mOffset2Left = (int) (ev.getRawX() - mDownX); //获取DragGridView自动向上滚动的偏移量,小于这个值,DragGridView向下滚动 mDownScrollBorder = getHeight() / 5; //获取DragGridView自动向下滚动的偏移量,大于这个值,DragGridView向上滚动 mUpScrollBorder = getHeight() * 4/5; //开启mDragItemView绘图缓存 mStartDragItemView.setDrawingCacheEnabled(true); //获取mDragItemView在缓存中的Bitmap对象 mDragBitmap = Bitmap.createBitmap(mStartDragItemView.getDrawingCache()); //这一步很关键,释放绘图缓存,避免出现重复的镜像 mStartDragItemView.destroyDrawingCache(); break; case MotionEvent.ACTION_MOVE: int moveX = (int)ev.getX(); int moveY = (int) ev.getY(); //如果我们在按下的item上面移动,只要不超过item的边界我们就不移除mRunnable if(!isTouchInItem(mStartDragItemView, moveX, moveY)){ mHandler.removeCallbacks(mLongClickRunnable); } break; case MotionEvent.ACTION_UP: mHandler.removeCallbacks(mLongClickRunnable); mHandler.removeCallbacks(mScrollRunnable); break; } return super.dispatchTouchEvent(ev); }
Example 17
Source File: CoolDragAndDropGridView.java From UltimateAndroid with Apache License 2.0 | 4 votes |
private void onDrop() { destroyDragImageView(); removeCallbacks(mDelayedOnDragRunnable); View v = getChildAt(mDropPosition); v.setVisibility(View.VISIBLE); v.clearAnimation(); if (mDragAndDropListener != null && mDropPosition != AdapterView.INVALID_POSITION) { mDragAndDropListener.onDropItem(mDragPosition, mDropPosition); } mDragPosition = mDropPosition = mCurrentPosition = AdapterView.INVALID_POSITION; mDragAndDropStarted = false; }
Example 18
Source File: TouchInterceptor.java From GravityBox with Apache License 2.0 | 4 votes |
@Override public boolean onTouchEvent(MotionEvent ev) { if ((mDragListener != null || mDropListener != null) && mDragView != null) { int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: Rect r = mTempRect; mDragView.getDrawingRect(r); stopDragging(); if (mDropListener != null && mDragPos >= 0 && mDragPos < getCount()) { mDropListener.drop(mFirstDragPos, mDragPos); } unExpandViews(false); break; case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: int x = (int) ev.getX(); int y = (int) ev.getY(); dragView(x, y); int itemnum = getItemForPosition(y); if (itemnum >= 0) { if (action == MotionEvent.ACTION_DOWN || itemnum != mDragPos) { if (mDragListener != null) { mDragListener.drag(mDragPos, itemnum); } mDragPos = itemnum; doExpansion(); } int speed = 0; adjustScrollBounds(y); if (y > mLowerBound) { // scroll the list up a bit speed = y > (mHeight + mLowerBound) / 2 ? 16 : 4; } else if (y < mUpperBound) { // scroll the list down a bit speed = y < mUpperBound / 2 ? -16 : -4; } if (speed != 0) { int ref = pointToPosition(0, mHeight / 2); if (ref == AdapterView.INVALID_POSITION) { // we hit a divider or an invisible view, check // somewhere else ref = pointToPosition(0, mHeight / 2 + getDividerHeight() + 64); } View v = getChildAt(ref - getFirstVisiblePosition()); if (v != null) { int pos = v.getTop(); setSelectionFromTop(ref, pos - speed); } } } break; } return true; } return super.onTouchEvent(ev); }
Example 19
Source File: CoolDragAndDropGridView.java From UltimateAndroid with Apache License 2.0 | 4 votes |
private boolean launchDragAndDrop(final MotionEvent event) { final int x = (int) event.getX(); final int y = (int) event.getY(); mCurrentPosition = mDragPosition = mDropPosition = pointToPosition(mDragPosition, x, y); if (mDragPosition != AdapterView.INVALID_POSITION && mDragAndDropListener.isDragAndDropEnabled(mDragPosition)) { mDragOffsetX = (int) (event.getRawX() - x); mDragOffsetY = (int) (event.getRawY() - y); startDrag(x, y); return true; } return false; }
Example 20
Source File: DragSortController.java From onpc with GNU General Public License v3.0 | 4 votes |
private int viewIdHitPosition(MotionEvent ev, int id) { final int x = (int) ev.getX(); final int y = (int) ev.getY(); int touchPos = mDslv.pointToPosition(x, y); // includes headers/footers final int numHeaders = mDslv.getHeaderViewsCount(); final int numFooters = mDslv.getFooterViewsCount(); final int count = mDslv.getCount(); // Log.d("mobeta", "touch down on position " + itemnum); // We're only interested if the touch was on an // item that's not a header or footer. if (touchPos != AdapterView.INVALID_POSITION && touchPos >= numHeaders && touchPos < (count - numFooters)) { final View item = mDslv.getChildAt(touchPos - mDslv.getFirstVisiblePosition()); final int rawX = (int) ev.getRawX(); final int rawY = (int) ev.getRawY(); View dragBox = id == 0 ? item : item.findViewById(id); if (dragBox != null) { dragBox.getLocationOnScreen(mTempLoc); if (rawX > mTempLoc[0] && rawY > mTempLoc[1] && rawX < mTempLoc[0] + dragBox.getWidth() && rawY < mTempLoc[1] + dragBox.getHeight()) { mItemX = item.getLeft(); mItemY = item.getTop(); return touchPos; } } } return MISS; }