首页 > 学院 > 开发设计 > 正文

VerticalSwipeRefreshLayout竖直下拉刷新

2019-11-07 22:59:58
字体:
来源:转载
供稿:网友

SwipeRefreshLayout 下拉刷新控件 会和左右滑动的控件 发生冲突 

然后下面重写了一下 SwipeRefreshLayout 增加点容差让下拉刷新在竖直滑动时可以触发刷新

/** * 作者: CoolTone * 描述: 只能竖值方向才能下拉刷新的控件 */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);    }}


上一篇:SmartImage的使用

下一篇:Eclipse Neon发布!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表