原因:ScrollView和WebView都有焦點(diǎn)和滑動(dòng)事件,高度無法自適應(yīng),所以監(jiān)聽WebView加載后重新設(shè)置高度就可以了。
解決方案一為WebView重新設(shè)置高度:
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);//設(shè)置能夠解析Javascript
webSettings.setDomStorageEnabled(true);//設(shè)置適應(yīng)Html5的一些方法
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// return super.shouldOverrideUrlLoading(view, url);
webView.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// super.onPageFinished(view, url);
progress.setVisibility(View.GONE);
//重新為WebView設(shè)置高度
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) webView.getLayoutParams();
params.width = getScreenWidth();
params.height = getScreenHeight()-SizeUtil.dip2px(ScreenShotByH5Activity.this,150);
webView.setLayoutParams(params);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progress.setVisibility(View.VISIBLE);
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
progress.setVisibility(View.GONE);
showToastMessage("加載失敗");
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
解決ScrollView和WebView的滑動(dòng)沖突(該方法是讓ScrollView和WebView都單獨(dú)滑動(dòng)效果不理想)
webView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent ev) {
((WebView)v).requestDisallowInterceptTouchEvent(true);
return false;
}
});
解決方案二:不讓W(xué)ebView滑動(dòng),只滑動(dòng)ScrollView
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dp_20"
android:fillViewport="true"
android:scrollbars="none"
android:descendantFocusability="blocksDescendants"/>
為ScrollView設(shè)置android:descendantFocusability="blocksDescendants"屬性