在android的中,经常会用到scrollview内嵌套listview这样的操作,或者嵌套其他控件。在处理touch事件的时候,经常会出现,只能相应某一个控件的touch事件,不能实现理想的效果。

想要实现自己 想要的效果。可以在内部的控件中做处理。

实现setOnTouchListener,如下所示:

listView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View arg0, MotionEvent event) {if(event.getAction() == MotionEvent.ACTION_UP){  scrollView.requestDisallowInterceptTouchEvent(false);  //允许上层控制执行touch事件        }          else {                  scrollView.requestDisallowInterceptTouchEvent(true);  <span style="font-family: Arial, Helvetica, sans-serif;">//不允许上层控制执行touch事件</span>        } return false;}});

该方法已经满足要求,如果还不行的话。可以试试下面的方法:

自定义一个控件,在里面重写dispatchTouchEvent方法:

if(Math.abs(downX - touchX) > Math.abs(downY - touchY)) {//横向滑动            getParent().requestDisallowInterceptTouchEvent(true);//不允许执行父控件的touch            }            else {            getParent().requestDisallowInterceptTouchEvent(false);//允许执行父控件的touch            }        return super.dispatchTouchEvent(ev);

这样就可以解决事件冲突的问题了。


更多相关文章

  1. 最全面的安卓ANR
  2. Android学习笔记十四之RelativeLayout相对布局
  3. 关于直接在View中实现Gesture的功能
  4. Android开发之异步详解(二)之AsyncTask
  5. android 编译出来的执行文件 not executable: magic 7F45
  6. Android(安卓)4.0 编译全程
  7. Android(安卓)自定义控件实现ListView索引
  8. (笔记)Android(安卓)studio——相对布局(RelativeLayout)
  9. Day2.3--Android常用布局之RelativeLayout

随机推荐

  1. Android中图像和图像处理
  2. Android : dip/dp与px(pixel)之间的相互
  3. Android学习《Test and intrumentation》
  4. android新建项目时gen目录下的R文件没有
  5. 探索 Android(安卓)中的 Span
  6. Android系统数据传递机制
  7. 使用Android(安卓)隐藏API和内部 API
  8. 命令行开发、编译、打包Android应用程序
  9. android EditText基本设置
  10. android布局中的基本属性: