SlidingMenu+ViewPage+ListView嵌套(类似网易 ) ListView点击事件失效冲突问题解决
2014-03-14 17:17
639 查看
SlidingView 方法onInterceptTouchEvent修改
代码
http://download.csdn.net/detail/lj102800/7041393
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { // System.out.println("SlidingView onInterceptTouchEvent"); try{ final int action = ev.getAction(); final float x = ev.getX(); final float y = ev.getY(); switch (action) { case MotionEvent.ACTION_DOWN: mIsAlreadySetViewState = false; mLastMotionX = x; mLastMotionY = y; mIsBeingDragged = false; break; case MotionEvent.ACTION_MOVE: final float dx = x - mLastMotionX; final float xDiff = Math.abs(dx); final float yDiff = Math.abs(y - mLastMotionY); if(askChild(this,ev, dx,dx)){ return false; } if (xDiff > mTouchSlop && xDiff > yDiff) { mIsBeingDragged = true; mLastMotionX = x; } break; } return mIsBeingDragged; }catch(IllegalArgumentException ex) { ex.printStackTrace(); return false; } } private boolean askChild(Object v,MotionEvent ev,float dx,float xDiff ){ ViewGroup vg = null; if(v instanceof ViewGroup){ vg = (ViewGroup)v; }else{ return false; } for(int i=0;i<vg.getChildCount();i++){ if (vg.getChildAt(i) instanceof HorizontalScrollView) {//(这是以HorizontalScrollView为例,其它可以自行加判断) return ((ViewGroup)vg.getChildAt(i)).onInterceptTouchEvent(ev); }else if (vg.getChildAt(i) instanceof MyViewPage) { // System.out.println(" instanceof MyViewPage"+((ViewGroup)vg.getChildAt(i)).onInterceptTouchEvent(ev)); System.out.println(xDiff +"-----------"+scrollX); MyViewPage mvp=( MyViewPage) vg.getChildAt(i); if(mvp.getPosition()==0) if(xDiff>0)//右滑 return false;//((ViewGroup)vg.getChildAt(i)).onInterceptTouchEvent(ev); else if(scrollX<0)//左侧出来 return false; else return true; else return true; } if(askChild(vg.getChildAt(i), ev,dx,xDiff )){ return true; } } return false; } float scrollX =0;之前ViewPage的onInterceptTouchEvent重写 去掉了,不用重写了
代码
http://download.csdn.net/detail/lj102800/7041393
相关文章推荐
- 解决ScrollView中嵌套ListView滚动效果冲突问题 & ListVIew点击事件失效
- 今天使用PullToRefreshListView时遇到Item点击事件失效问题,特此记下解决办法
- listview item中button点击事件和listview onItem点击事件冲突问题解决
- 自定义SwipeRefreshLayout 嵌套listview 并解决item点击事件焦点冲突问题
- Android ListView的Item点击事件和Item里控件点击事件冲突问题解决
- Android ListView item 点击事件失效问题的解决
- 开发笔记:解决安卓GestureOverlayView手势和ListView点击事件、文本框获取焦点冲突的问题
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- Android ListView item 点击事件失效问题的解决
- 解决Listview中Item中控件设置点击事件而Item点击事件失效问题
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- Listview点击事件失效问题解决以及每个Item 子控件获取focus
- 解决自定义ListView中滑动事件和点击的setOnItemClickListener事件冲突的问题
- ListView item中有button或EditText时 点击事件失效问题的解决
- 完美解决listView 文字超链接点击事件和listitem点击事件冲突问题
- 【解决方案】如何解决输入框失焦事件与按钮点击事件冲突的问题
- DialogFragment的使用及利用自定义interface点击事件并解决旋转屏幕点击事件失效问题
- ListView点击单个Item失效问题解决办法
- 解决ClickableSpan中点击后ListView中item的长按冲突的问题
- 解决ListView当中还有ListView onItemClick点击事件问题