i am using SwipeRefreshLayout
in my below layout:
Ok I have got it working. If the SwipeRefreshLayout
is the root of the layout and the ScrollView
resides deep into the hierarchy (I had put the ScrollView
inside a RelativeLayout
) and not the direct child of the SwipeRefreshLayout
, it won’t detect a swipe up on the ScrollView
properly.
You should create a custom class that extends SwipeRefreshLayout
and override canChildScrollUp()
method in SwipRefreshLayout
Here is a example :
public class CustomSwipeRefreshLayout extends SwipeRefreshLayout {
private ScrollView scrollview;
public CustomSwipeRefreshLayout(Context context) {
super(context);
}
public CustomSwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setView(ScrollView view) {
this.scrollview = view;
}
@Override
public boolean canChildScrollUp() {
return scrollview.getScrollY() != 0;
}
}