免费ppt下载网站,wordpress主题APP,酒庄企业网站,响应式网站模块之前写过一个方案#xff08;添加链接描述#xff09;#xff0c;突然觉得很麻烦#xff0c;于是有了新的方案#xff1a;
首先先说要解决的问题#xff1a; 当父布局能滑动#xff0c;子View也能滑动#xff0c;就会出现滑动冲突
解决思路#xff1a;我们按下子Vie…之前写过一个方案添加链接描述突然觉得很麻烦于是有了新的方案
首先先说要解决的问题 当父布局能滑动子View也能滑动就会出现滑动冲突
解决思路我们按下子View时设置父布局不监听滑动事件抬起子View时设置父布局继续监听滑动事件
比上一篇优点在哪上一篇需要操作父类对象很麻烦这一篇可以直接在子View中完成任务。
第一步在子View中添加这个方法
/**
* 设置父类监听或者不要监听触摸事件* 说明这是一个简单粗暴的方法请求所有的父布局全部监听或者全部不要监听触摸事件
* param isDisallowInterceptTouchEvent
*/
public void requestParent(boolean isDisallowInterceptTouchEvent){ViewGroup parentnull;for (int k0;k15;k){ //15代表你布局嵌套的层数具体看你的布局复杂程度try {if (parentnull){parent (ViewGroup) getParent();if (parent!null){parent.requestDisallowInterceptTouchEvent(isDisallowInterceptTouchEvent);}}else {parent (ViewGroup) parent.getParent();if (parent!null){parent.requestDisallowInterceptTouchEvent(isDisallowInterceptTouchEvent);}}}catch (Exception e){}}
}第一步在子View的onTouchEvent中发出请求 Override
public boolean onTouchEvent(MotionEvent event) {if (event.getAction()MotionEvent.ACTION_DOWN){requestParent(true);return true;}if (event.getAction()MotionEvent.ACTION_UP) {requestParent(false);}return super.onTouchEvent(event);
}此时滑动子View时就不会再收到父布局的影响了。