|
43 | 43 | * 2016 11 14 add,修改回弹的动画,更平滑。
|
44 | 44 | * 2016 11 14 fix,微小位移的move不回回弹的bug
|
45 | 45 | * 2016 11 18,fix 当ItemView存在高度可变的情况
|
| 46 | + * 2016 12 07,fix 禁止侧滑时(isSwipeEnable false),点击事件不受干扰。 |
46 | 47 | * Created by zhangxutong .
|
47 | 48 | * Date: 16/04/24
|
48 | 49 | */
|
@@ -430,56 +431,59 @@ public boolean dispatchTouchEvent(MotionEvent ev) {
|
430 | 431 |
|
431 | 432 | @Override
|
432 | 433 | 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表示拦截 |
453 | 459 | }
|
454 |
| - return true;//true表示拦截 |
455 | 460 | }
|
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; |
463 | 469 | }
|
464 |
| - return true; |
465 | 470 | }
|
466 | 471 | }
|
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 |
474 | 478 |
|
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 | + } |
481 | 486 | }
|
482 |
| - |
483 | 487 | return super.onInterceptTouchEvent(ev);
|
484 | 488 | }
|
485 | 489 |
|
|
0 commit comments