【问题标题】:Android WebView isn't scrollableAndroid WebView 不可滚动
【发布时间】:2014-01-03 18:31:06
【问题描述】:

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

【问题讨论】:

  • 也许将 ScrollView 添加为其父级?
  • 将webView放入线性布局并设置方向为垂直,将启用滚动。
  • Android WebView Scrollable 的可能重复项
  • 他们都没有帮助:(

标签: java android webview scroll


【解决方案1】:

我已经找到了解决方案,您只需将 WebView 定义放在“

布局/content_my.xml

”不在“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" />

在 MyActivity.java 里面

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

【讨论】:

  • 答案应该是什么。谢谢!
【解决方案2】:

不要将wrap_content 用于您的身高。如果您的 WebView 与其内容具有相同的高度,那么就永远不会滚动任何内容,因为显然内容都符合定义(尽管鉴于您正在动态加载内容,这可能不是 确切正在发生的事情)。尝试将高度设置为match_parent 或固定值。

【讨论】:

  • 听起来合乎逻辑,但也无济于事,我仍然无法移动它
【解决方案3】:

我的相对布局中有一些其他元素,我将其切换为不可见。这使我的 webview 无法滚动。我的解决方案是:

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

【讨论】:

  • 可能你必须使用:webview.getSettings().setBuiltInZoomControls(true);,我也使用了setContentView(webview);
【解决方案4】:

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

Android WebView Scrollable

它提供了一些我相信可以解决这个问题的调用。

另一个问题:

尝试将您的 webview 从“Wrap Content”更改为某个特定高度。然后设置滚动条。

尝试 300dp 之类的,然后从那里开始。

【讨论】:

【解决方案5】:

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

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

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

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

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

【讨论】:

  • 这些需要 API 级别 11。我在 API 级别 10 上看到了这个问题。
【解决方案6】:

添加这一行,它将开始工作

webview.getSettings().setJavaScriptEnabled(true);

希望这能解决您的问题吗?

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 2017-05-11
    • 2015-12-10
    • 2019-04-25
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多