public class ScrollWebview extends WebView {
public OnScrollChangeListener listener;
public ScrollWebview(Context context) {
super(context);
}
public ScrollWebview(Context context, OnScrollChangeListener listener) {
super(context);
this.listener = listener;
}
public ScrollWebview(Context context, AttributeSet attrs, OnScrollChangeListener listener) {
super(context, attrs);
this.listener = listener;
}
public ScrollWebview(Context context, AttributeSet attrs, int defStyleAttr, OnScrollChangeListener listener) {
super(context, attrs, defStyleAttr);
this.listener = listener;
}
public ScrollWebview(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing, OnScrollChangeListener listener) {
super(context, attrs, defStyleAttr, privateBrowsing);
this.listener = listener;
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (listener!=null) {
listener.onScrollChanged(l, t, oldl, oldt);
}
}
public void setOnScrollChangeListener(OnScrollChangeListener listener) {
this.listener = listener;
}
public interface OnScrollChangeListener {
void onScrollChanged(int l, int t, int oldl, int oldt);
}
}
然後根據其下滑的距離進行判斷
mWebview.setOnScrollChangeListener(new ScrollWebview.OnScrollChangeListener() {
@Override
public void onScrollChanged(int l, int t, int oldl, int oldt) {
if (t > 15) {
if (!notop) {
if (swipeToLoadLayout.isRefreshing()) {
return;
}
swipeToLoadLayout.setRefreshEnabled(false);
}
notop = true;
} else {
if (notop) {
swipeToLoadLayout.setRefreshEnabled(true);
}
notop = false;
}
}
});