WebView
加下拉刷新的时候,如果WebView
内部有上下滑动的列表,会与下拉刷新的滑动冲突,表现在WebView
滑到下面就再也滑不上去了。网上查了很多解决办法,有重写WebView
的,有重写SwipeRefreshLayout
的(我这里使用的下拉刷新控件是SwipeRefreshLayout
),有比较简单的,有比较复杂的,但是试过好多以后发现都没有作用。下面是一种很简单的思路,既不重写WebView
,也不重写SwipeRefreshLayout
,却能解决这个冲突(有作用不用感谢我,有问题请留言告诉我):
直接重写WebView
的onTouchListener
方法,在DOWN
事件的时候判断WebView
滑动的距离是不是0,如果是0就代表WebView
在顶部,就可以触发下拉刷新;如果不是0,就代表WebView
不在顶部,不能触发下拉刷新,代码如下:
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:{
if(mWebView.getScrollY() <= 0){
refreshLayout.setEnabled(true);
} else {
refreshLayout.setEnabled(false);
}
}
default:
break;
}
return false;
}
});