Android WebView isn't scrollable

24,740

Solution 1

I have found a solution for this, All you need is to put WebView definition in "

layout/content_my.xml

" not in "activity_my.xml"

<WebView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/webView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

And inside the MyActivity.java

    WebView webview = (WebView)findViewById(R.id.webView);
    webview.loadUrl("file:///android_asset/index.html");
    webview.setVerticalScrollBarEnabled(true);
    webview.setHorizontalScrollBarEnabled(true);

Solution 2

Don't use wrap_content for your height. If your WebView has the same height as its content, then there's never anything to scroll as obviously the content all fits by definition (though given you're loading content dynamically this may not be exactly what's happening). Try setting the height to match_parent or a fixed value.

Solution 3

I had some other elements in my relative layout, which I switched to invisible. This made my webview not scrollable. My solution was:

relativelayout.removeallchilds();
relativelayout.addchild(webview);
relativelayout.addchild(overlaybutton);
Share:
24,740
Abascus
Author by

Abascus

Updated on July 09, 2022

Comments

  • Abascus
    Abascus almost 2 years

    My Android WebView isn't scrollable.

    XML Code:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/screen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#87cefa"
    android:gravity="left"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    
    <WebView
        android:id="@+id/webView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerHorizontal="true" />
    

    I'm loading the Website with the normal webview.loadUrl(url); function and sometimes with the webview.loadDataWithBaseURL("", htmlContent, "text/html", "UTF-8", ""); function, both of them display the page, but they are not scrollable

    Init:

    setContentView(R.layout.activity_main); webview = (WebView)this.findViewById(R.id.webView); webview.setVerticalScrollBarEnabled(true); webview.setHorizontalScrollBarEnabled(true);

    Loading:

                webview.loadUrl(url);
                [either one of them or the other]
        webview.loadDataWithBaseURL("", htmlContent, "text/html", "UTF-8", "");