如何在SwipeRefreshLayout中设置delta

时间:2015-12-21 16:05:47

标签: android android-viewpager gesture swiperefreshlayout

我的应用程序中出现了一些小错误。

这是我的应用结构: enter image description here

当我开始滚动以移动到ViewPager SwipeToRefreshLayout中的下一页时,请抓住我的滑动功能,我无法更改页面。

如何为SwipeRefreshLayout设置delta?

1 个答案:

答案 0 :(得分:2)

我通过扩展SwipeRefreshLayout解决了这个问题,并且禁止拦截横向滚动,如下所示。这是我在stackoverflow上找到的修改后的代码。

public class PullToRefresh extends SwipeRefreshLayout {

    private final int mTouchSlop;
    private float mTouchDownX;

    public PullToRefresh(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:
                mTouchDownX = event.getX();
                break;
            case MotionEvent.ACTION_MOVE:
                if (Math.abs(event.getX() - mTouchDownX) > mTouchSlop) {
                    return false;
                }
                break;
        }
        return super.onInterceptTouchEvent(event);
    }

}