android ViewParent requestDisallowInterceptTouchEvent 测试
16lz
2021-01-23
简单测试了一下 requestDisallowInterceptTouchEvent的使用:
两个类:
public static class myView extends View {@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubint action = MotionEventCompat.ACTION_MASK & event.getAction();Log.e("FYF", "myView " + SystemUtils.motionEventToString(event));if (action == MotionEvent.ACTION_DOWN) {getParent().requestDisallowInterceptTouchEvent(true);}return true;}}
public static class myLinearLayout extends LinearLayout {@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {// TODO Auto-generated method stub//return super.onInterceptTouchEvent(ev);int action = MotionEventCompat.ACTION_MASK & ev.getAction();if (action == MotionEvent.ACTION_DOWN) {return false;} else {return true;}}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubLog.e("FYF", "myLinearLayout " + SystemUtils.motionEventToString(event));return true;}}
在MyLinearLayout里放一个myView,
MyLineaLayout在interceptTouchEvevnt时,如果action 是 ACTION_DOWN, 那么就return false,将event继续传递给myView,
否则就自己直接截获,
myView没有requestDisallowInterceptTouchEvent(true):
E/FYF (11126): myView ACTION_DOWN
E/FYF (11126): myView ACTION_CANCEL
E/FYF (11126): myLinearLayout ACTION_MOVE
E/FYF (11126): myLinearLayout ACTION_MOVE
......................................
E/FYF (11126): myLinearLayout ACTION_UP
myView 运行了requestDisallowInterceptTouchEvent(true):
E/FYF (12069): myView ACTION_DOWN
E/FYF (12069): myView ACTION_MOVE
E/FYF (12069): myView ACTION_MOVE
......................................
E/FYF (12069): myView ACTION_UP
更多相关文章
- 谷安: 米国军方的 iOS、Android、Windows Phone 7 测试结果…
- Android性能测试 一些适用于Android Studio的代码审查和性能测试
- Android 自动化测试—robotium(八)拖拽
- Unity接入Android广告: 二、将Aar包放入Unity中测试
- Android review Android中的测试
- android 单元测试 附源码
- Android 自动化测试—robotium(五)Spinner控件
- Android Wifi:使用Android Instrument 自动测试 WIFI_SERVICE
- 1.8 奇葩,android onBackPressed结束了两个activity