我需要水平滚动和缩放webView,因为我有一个带票务销售的大画布,滚动不适用于低于5.0的设计,但我需要支持版本4.1+。
这是我的webView
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.setVerticalScrollBarEnabled(true);
webView.setHorizontalScrollBarEnabled(true);
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webView.addJavascriptInterface(new MyJavaScriptInterface(getContext()), "HtmlViewer");
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
// webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
else {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
// ((GiftsActivity)getActivity()).dismissSpinner();
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
// view.reload();
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:HtmlViewer.showHTML" +
"(document.getElementsByTagName('pre')[0].innerHTML);");
}
});
webView.loadUrl(url);
((GiftsActivity)getActivity()).dismissSpinner();
}
和xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView android:id="@+id/webViewPosterPlaces"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>
我尝试将布局更改为相对并更改方向为水平,我也试图将webview放在scrollview中,但它也不会起作用。
顺便说一下,当我放大网页视图时,我也无法横向滚动。 垂直滚动作为放大功能正常工作,但缩小也不起作用
问题已解决:
需要删除此行:webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN
);