有没有办法让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
没有正确设置,似乎不知道该怎么做