Android WebView 不会滚动

2024-06-28

我有一个WebView在 Android (4.2) 中加载一个本地 HTML使用javascript(放置在资产文件夹中)。

我的问题是,我无法在我的 WebView 中滚动任何。我通过类似的问题尝试了很多事情和建议,但没有任何效果。

我的 Html 只是一个简单的 div 标签,Kinetic-js 框架使用它来绘制图片并在其上绘制一些画布。

XML 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="@dimen/text_size_smed_16sp"
            android:textColor="@android:color/white"
            android:text="@string/ui_floor_plan_building_textView" />

        <Spinner android:id="@+id/floor_plan_building_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="@dimen/text_size_smed_16sp"
            android:textColor="@android:color/white"
            android:text="@string/ui_floor_plan_level_textView" />

        <Spinner android:id="@+id/floor_plan_level_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <AutoCompleteTextView android:id="@+id/floor_plan_room_autoTextView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:completionThreshold="1"
            android:hint="@string/ui_floor_plan_autocomplete_hint"
            android:inputType="number"
            android:imeOptions="actionSearch" />

    </LinearLayout>

     <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <WebView android:id="@+id/floor_plan_webView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

     </LinearLayout>

</LinearLayout>

Java onCreate:

    this.webView = (WebView) findViewById(R.id.floor_plan_webView);
    this.webView.getSettings().setJavaScriptEnabled(true);

    this.webView.getSettings().setLoadWithOverviewMode(true);
    this.webView.getSettings().setUseWideViewPort(true);

    this.webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
    this.webView.setScrollbarFadingEnabled(false);
    this.webView.setVerticalScrollBarEnabled(true);
    this.webView.setHorizontalScrollBarEnabled(true);

    this.webView.getSettings().setSupportZoom(true);
    this.webView.getSettings().setLightTouchEnabled(true);

    this.webView.setWebViewClient(new WebViewClient(){

        private boolean initialLoad = true;

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            if(this.initialLoad){
                this.initialLoad = false;
                drawFloorPlan();
            }
        }

    });
    this.webView.loadUrl(PATH_FLOOR_PLAN_HTML);

HTML 文件:

    <html>
        <head>
        <title>Floor Plans</title>

        <meta charset="UTF-8">

        <script type="text/javascript" src="floor_plan.js"></script>
        <script type="text/javascript" src="kinetic-v4.0.5.js"></script>
    </head>

    <body onload="initialize()" style="margin:0px; padding:0px; width:100%; height:100%">
        <div id="container"></div>
    </body>

</html>

观察:当显示的图像(html 文件)小于 webview 时,只要触摸事件位于显示的 html“外部”,就可以垂直和水平滚动。通常我的图片很大,所以根本没有机会触摸外部并滚动。

我不确定它是否是 WebView 本身或 html 页面的问题。有什么想法可以让滚动恢复工作吗?

我非常感谢每个答案=)提前致谢!


我找到了一个solution:

我实现了自己的 onTouchListener 并自己进行滚动。从另一个SO问题/答案中得到了这个想法(Android:滚动图像视图 https://stackoverflow.com/questions/3058164/android-scrolling-an-imageview)

认为这可能对其他人有帮助,因为在 WebView 中,某些 html 文件(从 file:/// 加载)似乎有点问题...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android WebView 不会滚动 的相关文章

随机推荐

  • 有选择地格式化 PowerShell 管道中的数据并输出为 HTML 的技术

    假设您想要对 powershell 的某些表格输出进行一些奇特的格式化 并且目标是 html 用于网络服务器 或者通过电子邮件发送 举例来说 您希望某些数值具有不同的背景颜色 任何 我可以想到两种可靠的编程方法来实现此目的 输出 XML 并
  • 获取数据后关闭EXCEL应用程序进程

    我正在尝试通过以下方式从列表中的 Excel 文件获取列数据 private void Form1 Load object sender EventArgs e Excel Application xlApp new Excel Appli
  • 从子目录或相对路径导入包

    这是我的目录设置 mydir script1 py shared otherstuff script2 py pkg box py init py script2 py以 开始 import pkg 而且效果很好 当我在其中包含相同的行时s
  • 迭代 numpy 矩阵行

    首先 我尝试在谷歌和网站中搜索来找到我的问题的答案 我认为这是非常基本的 但没有任何结果 我试图从 numpy 矩阵中获取行 但我不能 例如 如果我使用这个 result numpy matrix 11 12 13 21 22 23 31
  • ie7-8 的 Rem 后备

    我在所有 现代 网站中使用 rem 单位 为了使其与 ie7 8 兼容 我使用了 less 函数 font size 10 输出 font size 10px font size 1rem 由于我使用 rem 来处理实际的所有内容 宽度 顶
  • 如何处理 AWS Redshift unload 命令中的带引号的值?

    假设 遵循AWS docs https docs aws amazon com redshift latest dg r UNLOAD command examples html我想使用像这样的卸载命令 unload SELECT FROM
  • 如何在命令行中列出模块并检查函数是否存在?

    像许多 Windows 用户 一样 我不想花时间学习从源代码编译任何东西 所以 Lua 对于爱好者来说似乎是一个非常好的选择 抱歉 如果这是一个非常简单的问题 但是 Q1 如何列出解释器的任何给定实例可用的模块 有些二进制发行版有许多编译为
  • 如何在matplotlib中确定屏幕尺寸

    我正在寻找一种通用方法 使用 matplotlib 和任何交互式后端 例如 TkAgg Qt4Agg 或 macosx 来获取屏幕大小 以像素为单位 我正在尝试编写一个函数 它可以在屏幕上的一组标准位置打开一个窗口 例如屏幕的右半部分或右上
  • 为什么我的团队应该采用源代码控制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有机会向我的老板正式介绍任何对公司有利的事情 我的想法是在我的工作场所采用源代码控制 我一直在使用 Mercurial 来管理我自己的工
  • 在 Excel 中使用宏进行多选,如何取消选择选择

    我需要使用 MultiSelect 下拉列表创建启用宏的 Excelsheet 用户选择下拉列表之一 然后将值附加到以逗号 分隔的单元格中 如果用户再次选择已经选择的值 则应将其从列表中删除 我能够通过以下代码实现它的第一部分 但无法实现第
  • 如何让 Url.Action 使用正确的端口号?

    我正在使用 MVC3 创建一个网站 我使用 razor 语法来创建视图 并且所有这些都在 azure 下运行 目前我在本地的azure模拟器下运行 我在以下网址查看 http localhost 81 Blah Foo http local
  • 在 React Native ios 应用程序中无法识别 fontFamily

    我正在努力获取我的字体 按开始2P 已加载 它是来自谷歌字体的字体 已多次执行以下步骤 以确保我没有马虎 从所有迹象来看 该字体应该在 React Native 应用程序中可用 在我的项目目录的根目录下创建了资产文件夹 在资产文件夹中创建字
  • 索引数据表

    我有一个Datatable其中包含数百万数据 数据表 创建索引之前 x x DateColumn Name x x 2014 01 02 10 01 03 A 2014 01 02 11 07 23 A 2014 01 03 07 12 1
  • docker Buildx“错误:BuildKit 已启用,但 buildx 组件丢失或损坏”错误

    当我尝试像往常一样使用 Docker 进行 Docker 构建时 我在映像中收到错误消息 并且无法构建 这种情况我该怎么办 顺便说一句 Docker的版本是23 0 1 https i stack imgur com AzgNi png h
  • 使用 PyPDF2 去除 PDF 上的水印

    This Section imports the necessary classes from the PyPDF2 library from PyPDF2 import PdfFileReader PdfFileWriter from P
  • 如何在组内推送多列的值

    看来我的查询不会像我期望的那样 我想分组name并将 location1 和 location2 映射到名为的数组中locations Data name Jack localtion1 Taiwan localtion2 France n
  • Docker:PHP 上传文件到已安装数据卷时权限被拒绝

    我正在使用 docker 快速启动终端Win10 Client Version 17 06 0 ce API version 1 30 Go version go1 8 3 Git commit 02c1d87 Built Fri Jun
  • MySQL聚合函数问题

    在下面的例子中 为什么min 查询返回结果 但是max 查询没有 mysql gt create table t id int a int Query OK 0 rows affected 0 10 sec mysql gt insert
  • iOS 7:使用 UINavigationController 作为子视图控制器的自定义容器视图控制器

    我想编写一个自定义全屏容器视图控制器 目的是将 UINavigationController 作为子视图控制器放入其中 UINavigationController 的视图将填充容器视图控制器的视图 以便看起来 UINavigationCo
  • Android WebView 不会滚动

    我有一个WebView在 Android 4 2 中加载一个本地 HTML使用javascript 放置在资产文件夹中 我的问题是 我无法在我的 WebView 中滚动任何 我通过类似的问题尝试了很多事情和建议 但没有任何效果 我的 Htm