【发布时间】:2017-01-11 13:26:15
【问题描述】:
我的项目卡住了,我想寻求帮助
我的 Activity 中有一个带有 3 个片段的 Horizontal ViewPager,第二个片段中有一个 Vertical。中间很迷茫。如果它是向左或向右滑动,我想将我的事件传递给父 Horizontal,如果它是向下或向上滑动,则处理它。 我在 onTouchEvent(MotionEvent ev) 中做错了什么?
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
mStartDragX = ev.getX();
mStartDragY = ev.getY();
Log.d("action_down", "down : x=" + mStartDragX + "y=" + mStartDragY);
case MotionEvent.ACTION_MOVE:
Log.d("values", "ev.getX()" + ev.getX() + "after: " + (ev.getX() - mStartDragX));
Log.d("values", "ev.getY()" + ev.getY() + "after: " + (ev.getY() - mStartDragY));
if (Math.abs(ev.getY() - mStartDragY) > Math.abs(ev.getX() - mStartDragX)) {
Log.d("swiper: ", "Down or Up");
mParent.requestDisallowInterceptTouchEvent(false);
return super.onTouchEvent(swapXY(ev));
} else {
Log.d("swiper: ", "Left or Right");
mParent.requestDisallowInterceptTouchEvent(true);
mParent.onTouchEvent(ev);
}
break;
case MotionEvent.ACTION_UP:
Log.d("action_up", "up");
mStartDragX = -1;
mStartDragY = -1;
break;
}
return false;
}
【问题讨论】:
-
您是否获得了所有的 Action 类型?您可能必须返回 true 才能接收 ACTION_MOVE 和 ACTION_UP
标签: android android-fragments android-viewpager touch-event