仿QQ侧滑 添加事件下发
2015-08-03 10:47
615 查看
上一篇模拟的QQ侧滑的效果 :
http://blog.csdn.net/wwwbjj1988/article/details/47167161
这次把事件下发也做好了,左侧布局和右侧布局各有一个ListView
效果图: 因为是在模拟器里运行,所以感觉会有点卡,实际很流畅
主要是在自定义viewgroup中加了一个事件下发的方法 , 具体如下
源码 : http://download.csdn.net/detail/wwwbjj1988/8955169
经检测发现有时有无法滑动的问题,解决办法是 子view.setOnTouchListener() , 同时 onTouch() 中返回true就可以了
http://blog.csdn.net/wwwbjj1988/article/details/47167161
这次把事件下发也做好了,左侧布局和右侧布局各有一个ListView
效果图: 因为是在模拟器里运行,所以感觉会有点卡,实际很流畅
主要是在自定义viewgroup中加了一个事件下发的方法 , 具体如下
//判断条件阻断触摸事件 @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub switch(ev.getActionMasked()){ case MotionEvent.ACTION_DOWN :{ //初始化x 和 y 坐标 x = (int) ev.getX(); y = (int) ev.getY(); break; } case MotionEvent.ACTION_MOVE :{ //获取当前坐标 int nowX = (int) ev.getX(); int nowY = (int) ev.getY(); //判断当前坐标和初始坐标不一样 if(nowX != x && nowY != y){ float chax = (float)nowX - (float)x; float chay = (float)nowY - (float)y; //横向移动 if(Math.abs(chax) > Math.abs(chay)){ return true; } //纵向移动 else{ return false; } } break; } //只有在没有下发事件时up这里才能收到up事件 case MotionEvent.ACTION_UP :{ //当前已展示左侧列表后 点击位置在右侧 if(isLeftShowing && ev.getX() >= maxLeft){ dissLeftTask(); return true; } //up事件下发给子view的 itemclick return false; } } return false; }
源码 : http://download.csdn.net/detail/wwwbjj1988/8955169
经检测发现有时有无法滑动的问题,解决办法是 子view.setOnTouchListener() , 同时 onTouch() 中返回true就可以了
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories