Android WebView不可滚动

时间:2014-01-03 18:31:07

标签: java android webview scroll

我的Android WebView无法滚动。

XML代码:

<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" />

我正在使用正常的webview.loadUrl(url);函数加载网站,有时使用webview.loadDataWithBaseURL("", htmlContent, "text/html", "UTF-8", "");函数,它们都显示页面,但它们不可滚动

初​​始化:

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

装载:

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

6 个答案:

答案 0 :(得分:4)

不要将wrap_content用于身高。如果您的WebView与其内容具有相同的高度,那么从来没有任何内容可以滚动,因为显然内容都符合定义(尽管如果你动态加载内容,这可能不是完全发生了什么)。尝试将高度设置为match_parent或固定值。

答案 1 :(得分:3)

我找到了一个解决方案,您只需要将WebView定义放在&#34;

  

布局/ content_my.xml

&#34;不在&#34; activity_my.xml&#34;

<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" />

在MyActivity.java里面

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

答案 2 :(得分:1)

我的相对布局中有一些其他元素,我切换到隐形。这使我的webview无法滚动。我的解决方案是:

relativelayout.removeallchilds();
relativelayout.addchild(webview);
relativelayout.addchild(overlaybutton);

答案 3 :(得分:1)

嘿,我遇到了与webview相同的问题。即使使用match_parent属性和非常简单的代码,它也不会滚动。

问题不在您的xml文件中。它在你的Java文件中。 在该活动的java文件中覆盖onPause和onResume方法并包含此代码

{{1}}

暂停WebView然后再次恢复它非常重要。 希望能解决你的问题。

答案 4 :(得分:0)

我发布此评论是因为我认为这可能是重复的,但我会看一下这个问题:

Android WebView Scrollable

这提供了一些我认为可以解决这个问题的电话。

另一个问题:

尝试将您的网络视图从“自动换行内容”更改为某个特定高度。然后设置滚动条。

尝试类似300dp的东西并从那里开始。

答案 5 :(得分:0)

添加此行,它将开始工作

webview.getSettings().setJavaScriptEnabled(true);

希望,这可以解决您的问题吗?