将死区添加到SwipeRefreshLayout Android

时间:2015-01-14 10:35:42

标签: java android

有没有办法让SwipeRefreshLayout有一个小的死区,这样如果用户滚动到顶部并继续滚动,它不会立即尝试降低拉动刷新?我希望它有一个小死区,因为刷新拉动干扰ListView中的视图寻呼机。

如果用户滑动了viewpager并将其手指略微向下移动了拖动,则它开始执行拉动以刷新并且滑动动作丢失并且viewpager仅重置其位置。

我尝试过做这样的事情

mSwipeRefreshLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if(event.getAction() == MotionEvent.ACTION_DOWN)
                p1 = new Point((int) event.getX(), (int) event.getY());
            else if(event.getAction() == MotionEvent.ACTION_MOVE)
                p2 = new Point((int) event.getX(), (int) event.getY());

            if(p1 != null && p2 != null && Math.abs(p1.y - p2.y) < 50) {
                return true;
            }

            return false;
        }
    });

    mSwipeRefreshLayout.setOnDragListener(new View.OnDragListener() {
        @Override
        public boolean onDrag(View v, DragEvent event) {

            if(event.getAction() == DragEvent.ACTION_DRAG_ENTERED)
                p1 = new Point((int) event.getX(), (int) event.getY());
            else if(event.getAction() == DragEvent.ACTION_DRAG_LOCATION)
                p2 = new Point((int) event.getX(), (int) event.getY());

            if(p1 != null && p2 != null && Math.abs(p1.y - p2.y) < 50) {
                return true;
            }

            return false;
        }
    });

但是p2没有正确设置,似乎不知道该怎么做

0 个答案:

没有答案