Android:AutoScrollViewPager放在PullToRefresh中,解决不能下拉刷新问题
2015-11-11 14:32
525 查看
AutoScrollViewPager:Android自动滚动,轮播循环的ViewPager。项目开源地址:https://github.com/Trinea/android-auto-scroll-view-pager
这个控件很方便的实现图片banner的轮播,的确好用,但是我在项目中将AutoScrollViewPager放在下拉刷新ListView的头部,当在AutoScrollViewPager控件上下拉的时候,不能实现下拉效果。这时就需要对mAutoScrollViewPager的onTouch事件进行重写,核心代码如下:
private float mStartX;
private float mStartY;
private float mEndX;
private float mEndY;
mAutoScrollViewPager.setOnTouchListener(new OnTouchViewPagerListener());
private class OnTouchViewPagerListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
float minMove = 20;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mStartX = event.getX();
mStartY = event.getY();
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
mEndX = event.getX();
mEndY = event.getY();
float distanceX = mEndX - mStartX;
float distanceY = mEndY - mStartY;
if (Math.abs(distanceX) <= 15 && Math.abs(distanceY) >= minMove) {
v.getParent().requestDisallowInterceptTouchEvent(false);
} else {
v.getParent().requestDisallowInterceptTouchEvent(true);
}
}
return false;
}
}
这个控件很方便的实现图片banner的轮播,的确好用,但是我在项目中将AutoScrollViewPager放在下拉刷新ListView的头部,当在AutoScrollViewPager控件上下拉的时候,不能实现下拉效果。这时就需要对mAutoScrollViewPager的onTouch事件进行重写,核心代码如下:
private float mStartX;
private float mStartY;
private float mEndX;
private float mEndY;
mAutoScrollViewPager.setOnTouchListener(new OnTouchViewPagerListener());
private class OnTouchViewPagerListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
float minMove = 20;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
mStartX = event.getX();
mStartY = event.getY();
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
mEndX = event.getX();
mEndY = event.getY();
float distanceX = mEndX - mStartX;
float distanceY = mEndY - mStartY;
if (Math.abs(distanceX) <= 15 && Math.abs(distanceY) >= minMove) {
v.getParent().requestDisallowInterceptTouchEvent(false);
} else {
v.getParent().requestDisallowInterceptTouchEvent(true);
}
}
return false;
}
}
相关文章推荐
- 【Android开发】如何实现android和服务器长连接呢?推送消息的原理
- Android Bitmap Api总结和使用方法
- Android常用组件
- Android 图片处理工具类汇总
- Android中的SharedPreferences存储数据方式
- android adt bundle
- Android开发中退出程序几种方法
- android listview setEmptyview(设置listview是空值需要显示的布局)
- arcgis for android: file:/mnt/sdcard/xxx.geodatabase does not exist.
- Android底部菜单栏、Android沉浸式状态栏(顶部状态栏修改颜色)、自定义标题栏
- android jni的一些总结
- Android解析XML(SAX DOM PULL)
- Android 之ActivityThead、ActivityManagerService 与activity的管理和创建
- 整理android调用系统相机的方法及遇到的问题
- android context提供的openFileInput()方法
- Android项目工程目录详解
- Android用loadClass获取系统隐藏类和隐藏服务的方法
- NDK sprintf strcat 调用问题
- Android快速SDK(18)Tab页面TabPager【傻瓜模式】
- android edittext监听文字个数提示