Skip to content

Commit c7b778c

Browse files
author
zhangxutong
committed
2016 12 07,fix 禁止侧滑时(isSwipeEnable false),点击事件不受干扰。
1 parent 6dec61a commit c7b778c

File tree

1 file changed

+47
-43
lines changed

1 file changed

+47
-43
lines changed

swipemenulib/src/main/java/com/mcxtzhang/swipemenulib/SwipeMenuLayout.java

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
* 2016 11 14 add,修改回弹的动画,更平滑。
4444
* 2016 11 14 fix,微小位移的move不回回弹的bug
4545
* 2016 11 18,fix 当ItemView存在高度可变的情况
46+
* 2016 12 07,fix 禁止侧滑时(isSwipeEnable false),点击事件不受干扰。
4647
* Created by zhangxutong .
4748
* Date: 16/04/24
4849
*/
@@ -430,56 +431,59 @@ public boolean dispatchTouchEvent(MotionEvent ev) {
430431

431432
@Override
432433
public boolean onInterceptTouchEvent(MotionEvent ev) {
433-
switch (ev.getAction()) {
434-
//add by zhangxutong 2016 11 04 begin :
435-
// fix 长按事件和侧滑的冲突。
436-
case MotionEvent.ACTION_MOVE:
437-
//屏蔽滑动时的事件
438-
if (Math.abs(ev.getRawX() - mFirstP.x) > mScaleTouchSlop) {
439-
return true;
440-
}
441-
break;
442-
//add by zhangxutong 2016 11 04 end
443-
case MotionEvent.ACTION_UP:
444-
//为了在侧滑时,屏蔽子View的点击事件
445-
if (isLeftSwipe) {
446-
if (getScrollX() > mScaleTouchSlop) {
447-
//add by 2016 09 10 解决一个智障问题~ 居然不给点击侧滑菜单 我跪着谢罪
448-
//这里判断落点在内容区域屏蔽点击,内容区域外,允许传递事件继续向下的的。。。
449-
if (ev.getX() < getWidth() - getScrollX()) {
450-
//2016 10 22 add , 仿QQ,侧滑菜单展开时,点击内容区域,关闭侧滑菜单。
451-
if (isUnMoved) {
452-
smoothClose();
434+
//add by zhangxutong 2016 12 07 begin:
435+
//禁止侧滑时,点击事件不受干扰。
436+
if (isSwipeEnable) {
437+
switch (ev.getAction()) {
438+
//add by zhangxutong 2016 11 04 begin :
439+
// fix 长按事件和侧滑的冲突。
440+
case MotionEvent.ACTION_MOVE:
441+
//屏蔽滑动时的事件
442+
if (Math.abs(ev.getRawX() - mFirstP.x) > mScaleTouchSlop) {
443+
return true;
444+
}
445+
break;
446+
//add by zhangxutong 2016 11 04 end
447+
case MotionEvent.ACTION_UP:
448+
//为了在侧滑时,屏蔽子View的点击事件
449+
if (isLeftSwipe) {
450+
if (getScrollX() > mScaleTouchSlop) {
451+
//add by 2016 09 10 解决一个智障问题~ 居然不给点击侧滑菜单 我跪着谢罪
452+
//这里判断落点在内容区域屏蔽点击,内容区域外,允许传递事件继续向下的的。。。
453+
if (ev.getX() < getWidth() - getScrollX()) {
454+
//2016 10 22 add , 仿QQ,侧滑菜单展开时,点击内容区域,关闭侧滑菜单。
455+
if (isUnMoved) {
456+
smoothClose();
457+
}
458+
return true;//true表示拦截
453459
}
454-
return true;//true表示拦截
455460
}
456-
}
457-
} else {
458-
if (-getScrollX() > mScaleTouchSlop) {
459-
if (ev.getX() > -getScrollX()) {//点击范围在菜单外 屏蔽
460-
//2016 10 22 add , 仿QQ,侧滑菜单展开时,点击内容区域,关闭侧滑菜单。
461-
if (isUnMoved) {
462-
smoothClose();
461+
} else {
462+
if (-getScrollX() > mScaleTouchSlop) {
463+
if (ev.getX() > -getScrollX()) {//点击范围在菜单外 屏蔽
464+
//2016 10 22 add , 仿QQ,侧滑菜单展开时,点击内容区域,关闭侧滑菜单。
465+
if (isUnMoved) {
466+
smoothClose();
467+
}
468+
return true;
463469
}
464-
return true;
465470
}
466471
}
467-
}
468-
//add by zhangxutong 2016 11 03 begin:
469-
// 判断手指起始落点,如果距离属于滑动了,就屏蔽一切点击事件。
470-
if (isUserSwiped) {
471-
return true;
472-
}
473-
//add by zhangxutong 2016 11 03 end
472+
//add by zhangxutong 2016 11 03 begin:
473+
// 判断手指起始落点,如果距离属于滑动了,就屏蔽一切点击事件。
474+
if (isUserSwiped) {
475+
return true;
476+
}
477+
//add by zhangxutong 2016 11 03 end
474478

475-
break;
476-
}
477-
//模仿IOS 点击其他区域关闭:
478-
if (iosInterceptFlag) {
479-
//IOS模式开启,且当前有菜单的View,且不是自己的 拦截点击事件给子View
480-
return true;
479+
break;
480+
}
481+
//模仿IOS 点击其他区域关闭:
482+
if (iosInterceptFlag) {
483+
//IOS模式开启,且当前有菜单的View,且不是自己的 拦截点击事件给子View
484+
return true;
485+
}
481486
}
482-
483487
return super.onInterceptTouchEvent(ev);
484488
}
485489

0 commit comments

Comments
 (0)