智慧北京:滑动图片touch拦截的控制
来源:互联网 发布:代理商管理系统源码 编辑:程序博客网 时间:2024/04/28 21:30
1、上次的实现顶部图片加载后出现了一个BUG,即滑动图片时,变成了对上面的title的滑动
2、解决这个BUG:实现touch拦截。不让title滑动啦。
touch机制:
PicViewPager.java
package huaxa.it.zhihuidemo.widget;import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.KeyEvent;import android.view.MotionEvent;/** * @项目名: ZhiHuiDemo * @包名: huaxa.it.zhihuidemo.widget * @类名: PicViewPager * @创建者: 黄夏莲 * @创建时间: 2016年11月25日 ,下午11:10:19 * * @描述:请求父容器不拦截Touch的ViewPager */public class PicViewPager extends ViewPager{ private int mSX; private int mEX; private int mMX; public PicViewPager(Context context) { super(context); // TODO Auto-generated constructor stub } public PicViewPager(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean dispatchTouchEvent(MotionEvent ev) { int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // 父亲不阻止孩子的touch事件,即孩子自己响应touch事件 requestDisallowInterceptTouchEvent(true); mSX = (int) (ev.getX() + 0.5f); break; case MotionEvent.ACTION_MOVE: mEX = (int) (ev.getX() + 0.5f); mMX = mEX - mSX; int position = getCurrentItem(); // 在第一张图片时: // mMX>0从左向右,mMX<0从右往左,阻止孩子的touch事件,让父亲自己响应touch事件 if (position == 0) { //mMX>0看到左边,mMX<0看到右边 if (mMX > 0) { // 父亲阻止孩子的touch事件,父亲响应touch事件 requestDisallowInterceptTouchEvent(false); } else // 父亲不阻止孩子的touch事件,即孩子自己响应touch事件 requestDisallowInterceptTouchEvent(true); } else if (position > 0 && position < getAdapter().getCount() - 1) { // 父亲不阻止孩子的touch事件,即孩子自己响应touch事件 requestDisallowInterceptTouchEvent(true); } else { if (mMX > 0) { // 父亲不阻止孩子的touch事件,即孩子自己响应touch事件 requestDisallowInterceptTouchEvent(true); } else // 父亲阻止孩子的touch事件,父亲响应touch事件 requestDisallowInterceptTouchEvent(false); } break; case MotionEvent.ACTION_UP: break; default: break; } return super.dispatchTouchEvent(ev); }}
news_list_pager.xml
将原先的ViewPager改成huaxa.it.zhihuidemo.widget.PicViewPager
0 0
- 智慧北京:滑动图片touch拦截的控制
- 智慧北京:新闻菜单中ViewPager的touch处理
- 智慧北京:顶部图片的加载
- 智慧北京:轮播触摸控制
- 智慧北京:SlidingMenu的使用
- 智慧北京
- JS控制图片滑动
- 智慧北京:XUtils的View的注入
- 智慧北京:内容页面UI的实现
- 智慧北京:MVC的简单介绍
- 智慧北京:Gson解析的使用
- 智慧北京:菜单按钮点击的实现
- 智慧北京:新闻中心菜单切换的实现
- 智慧北京:ViewPagerIndicator使用的介绍
- 智慧北京:ViewPager中箭头的实现
- 智慧北京:View的层级关系
- 智慧北京:轮播任务的封装
- 智慧北京:设置菜单可否滑动(在首页和设置滑动页面,不出现菜单)
- [NOI2005] 维护数列
- 笔记
- DataSet和DataTable有用的方法
- 【备注】【C27】《Oracle 内核技术揭密》PDF 下载
- 多线程的聊天室实现-服务器端
- 智慧北京:滑动图片touch拦截的控制
- on/off delay matlab/simulink
- postfix配置问题
- 数据结构实验之图论七:驴友计划
- C语言:字节排序与内存四区(II)
- FloatingAction的使用技巧
- ListView的ViewHolder优化
- JVM分析工具
- 为什么任何对象都可以作为锁对象?