Android WebView isn't scrollable

2020-03-26 03:57发布

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", "");

6条回答
Summer. ? 凉城
2楼-- · 2020-03-26 04:14

Hey I had the Same Problem with webview. It was not scrolling even with the match_parent attribute and very simple code.

The problem is not in your xml file. Its in your Java file. In java file of that activity Override onPause AND onResume methods and iclude this code

@Override
protected void onResume() {
    super.onResume();
    browser.onResume();
}

@Override
protected void onPause() {
    super.onPause();
    browser.onPause();
}

It is very important that you Pause your WebView AND then Resume it again. Hope that will solve your problem.

查看更多
淡お忘
3楼-- · 2020-03-26 04:15

I've posted this as a comment as I think this may be a duplicate, but I would look at this question:

Android WebView Scrollable

Which provides a few calls which I believe will solve this issue.

Another issue:

Try changing your webview from "Wrap Content" to some specific height. Then set the scrollables.

Try something like 300dp and go from there.

查看更多
做自己的国王
4楼-- · 2020-03-26 04:19

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);
查看更多
祖国的老花朵
5楼-- · 2020-03-26 04:27

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.

查看更多
爷、活的狠高调
6楼-- · 2020-03-26 04:35

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);
查看更多
Ridiculous、
7楼-- · 2020-03-26 04:38

add this line and it will start working

webview.getSettings().setJavaScriptEnabled(true);

Hope, this solves your problem?

查看更多
登录 后发表回答