SwipeRefreshLayout上下刷新与左右滑动事件冲突的处理
来源:互联网 发布:plc编程100例ppt 编辑:程序博客网 时间:2024/04/29 15:40
随着时代的发展,伴随着以京东和淘宝为例的app开发模式,首页使用多数为android与H5的交互页面,所以不免需要做刷新的操作,而有时首页的h5中会出现横向滑动的轮播图之类的,这时就会和我们的下拉刷新事件发生冲突,为了解决这个问题,我们重写了SwipeRefreshLayout的触摸事件,当触摸的X距离大于某个数值的时候,我们就让它认为我们是在左右滑动,不执行下拉刷新操作。
VerticalSwipeRefreshLayout
此处我采用了网上某位大神的代码,直接采用了下,亲测可达到实际效果
参考网址:http://www.cnblogs.com/tianzhijiexian/p/4397537.html
package kale.com.waterfall.extra.swiprefreshlayout;import android.content.Context;import android.support.v4.widget.SwipeRefreshLayout;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.ViewConfiguration;/** * @author Jack Tony * @brief 只在竖直方向才能下拉刷新的控件 * @date 2015/4/5 */public class VerticalSwipeRefreshLayout extends SwipeRefreshLayout { private int mTouchSlop; // 上一次触摸时的X坐标 private float mPrevX; public VerticalSwipeRefreshLayout(Context context, AttributeSet attrs) { super(context, attrs); // 触发移动事件的最短距离,如果小于这个距离就不触发移动控件 mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPrevX = event.getX(); break; case MotionEvent.ACTION_MOVE: final float eventX = event.getX(); float xDiff = Math.abs(eventX - mPrevX); // Log.d("refresh" ,"move----" + eventX + " " + mPrevX + " " + mTouchSlop); // 增加60的容差,让下拉刷新在竖直滑动时就可以触发 if (xDiff > mTouchSlop + 60) { return false; } } return super.onInterceptTouchEvent(event); }}
阅读全文
0 0
- SwipeRefreshLayout上下刷新与左右滑动事件冲突的处理
- 左右滑动与上下滑动的冲突
- ViewPager左右滑动与SwipeRefreshLayout下拉刷新冲突
- 解决使用`SwipeRefreshLayout`下拉刷新和左右滑动事件冲突的问题
- 解决SwipeRefreshLayout左右滑动事件冲突的问题
- 解决SwipeRefreshLayout左右滑动事件冲突的问题
- 解决SwipeRefreshLayout左右滑动事件冲突的问题
- SwipeRefreshLayout 、RecyclerView 与 CoordinatorLayout 嵌套刷新滑动冲突的解决办法
- CoordinatorLayout+ViewPager+SwipeRefreshLayout滑动事件冲突的处理
- Android 下拉刷新 左右滑动 事件冲突
- ViewPage左右滑动和PullToRefreshListView上下滑动事件冲突
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
- 移动端的左右滑动DEMO,解决了左右滑动而不能上下滑动的事件冲突
- Android ListView上下滑动与item左右滑动冲突解决
- SwipeRefreshLayout 包含左右滑动的banner手势冲突解决方法
- SwipeRefreshLayout 与ListView滑动冲突的解决
- 解决由横向滑动引起的swiperefreshlayout刷新的冲突
- Spring事务管理
- java入门IO流--BufferedInputStream&&BufferedOutputStream
- 网易2018编程题_求能力值的最大乘积
- linux系统中如何进入退出vim编辑器,方法及区别
- Python 命令行解析工具 Argparse介绍(一)
- SwipeRefreshLayout上下刷新与左右滑动事件冲突的处理
- Java 异常处理
- 1027. Colors in Mars (20)
- 初识Servlet
- 各大浏览器内核的理解
- CSS3D效果之相册制作
- 跟大神一起十五分钟制作一个属于自己得Linux操作系统!
- Rich feature hierarchies for accurate object detection and semantic segmentation
- 用Python机器学习搞定验证码