网上搜索到的解决方案:http://android.662p.com/thread-6199-1-1.html
1、滑动View之间对滑动事件的处理(这边直接重写ScrollView,拦截垂直方向上的滑动事件)
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
boolean isIntercept = true;
switch(ev.getAction()) {
case MotionEvent.ACTION_DOWN:
mDownX = ev.getX();
mDownY = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
float distanceX = ev.getX() - mDownX;
float distanceY = ev.getY() - mDownY;
isIntercept = Math.abs(distanceY) > Math.abs(distanceX);
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
mDownX = 0;
mDownY = 0;
break;
default:
break;
}
return super.onInterceptTouchEvent(ev) && isIntercept;
}
2、WebView内容变更时,重新计算大小(防止底部空白问题)
private void handleResetWebViewHeightAction(final float height) {
final Activity activity = getActivity();
if(Helper.isNull(activity)) {
return;
}
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
DebugLog.e("" + height);
try {
mWebView.setLayoutParams(new LinearLayout.LayoutParams(
getResources().getDisplayMetrics().widthPixels,
(int) (height*getResources().getDisplayMetrics().density)));
}catch (Exception e) {
DebugLog.e(e.toString());
}
}
});
}
这两点解决了,其它问题也比较好解决了。