Toper
Toper

Reputation: 273

Can't scroll horizontal on webView

I need to scroll and zoom webView horizontally, because i have a big canvas with ticket sales, and scroll isn't working on devise lower than 5.0, but i need to support versions 4.1+.

Here's my 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();

}

and 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>

I tried to change layout to relative and changing orientation to horisontal, also i tried to put webview inside scrollview, but it won't works too.

By the way when i zoom in web view i also can't scroll horizontal. vertical scroll works properly as a Zoom in, but zoom out don't work too

PROBLEM RESOLVED:

Need to remove this line: webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

Upvotes: 1

Views: 1823

Answers (1)

Toper
Toper

Reputation: 273

Need to remove this line: webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN)

Upvotes: 1

Related Questions