Android 7 WebView 与wrap_content

2023-12-26

我有一个WebView with android:layout_height="wrap_content"里面一个ScrollView。在 Android 7 之前,这会导致 WebView 的大小调整为我设置的本地 html 内容的高度loadData。但在我的装有 Android 7 的 Nexus 5X 上,WebView 高度似乎不可靠,有时它只显示第一个文本行的部分内容,有时内容末尾有很大的间隙。
我认为这可能是因为 Google 现在从 Nougat 开始使用 Chrome 进行 WebViews。 有人对这个问题有解释或修复/解决方法吗?

视图包含在一个单元格中也可能很重要。RecyclerView .


解决方法是:

等待 html 页面加载并在页面内运行 JS 来检测内容高度并将其设置为 WebView 布局参数高度。

在页面内运行 JS 很容易,只需导航到 url 即可

javascript:Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight);

要将结果传递给 Java 代码,您必须提供 Java-Java Script 接口,如此处所述https://developer.android.com/guide/webapps/webview.html https://developer.android.com/guide/webapps/webview.html(将JavaScript代码绑定到Android代码)

您的导航网址必须类似于

javascript:myfunc(Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight));

myfunc 将被调用,您将获得页面的高度。现在只需将高度设置为 WebView 高度即可。

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

Android 7 WebView 与wrap_content 的相关文章

  • 如何修复网站 iframe 错误?

    当我访问此网址时 警告 推荐使用一些广告拦截器 网页链接加载良好 没有错误 但是 当我尝试通过加载同一页面时iframe在我的html代码中 出现错误 我的html代码
  • BUG - 在 IOS 中没有选择标签的完成按钮

    我正在使用最新的离子并有一个简单的选择标签
  • 在导航栏下方添加背景图片

    我想在导航栏下方添加背景图像 具有完整窗口大小的宽度 它不应覆盖整个页面长度 而是从导航栏菜单下方开始 一直向下直到特定的指定高度 但宽度是满的 我参考了以下内容 但仍然没有结果 在 Twitter Bootstrap 中的导航栏下方启动背
  • Android:TelephonyManager 类

    我不明白为什么 API 文档中这么写TelephonyManager类是public 但是当我尝试创建一个实例时 它说它不是公共类 并且无法从包中访问 我看到它也说使用Context getSystemService Context TEL
  • 在 Javascript 中动态添加事件处理程序

    我在使用 Javascript 时遇到了一个奇怪的问题 我得到的是一个特定格式的字符串 我将尝试用它创建一个表 该表每行只有一个单元格 字符串的格式为 每个单元格 行 需要显示内容 将传递给的参数onmouseover当用户将鼠标移动到显示
  • 尝试使用 Facebook ID 获取 Facebook 图像时获取空位图

    这是我正在使用的代码 String imageURL Bitmap bitmap null imageURL http graph facebook com fbID picture type try bitmap BitmapFactor
  • 出现软键盘时布局未向上推

    I have designed layout by taking the reference from this https stackoverflow com questions 16411056 how to adjust layout
  • 防止滚动时自定义 ListView 刷新。我想停止刷新

    我在我的 Android 应用程序中使用自定义 ListView 问题是当我滚动 ListView 时 它会自动清除从 EditText Edittext 作为 list item 输入的数据 并且 ListView 刷新 我想阻止它停止清
  • javascript中输入类型时间的值

    我有这个html
  • Ajax JSON 数据和灯箱冲突

    我有一个带有灯箱插件的画廊设置光廊 http sachinchoolur github io lightGallery docs 该画廊与静态 HTML 完美配合 当我动态抓取 API 数据并尝试让灯箱处理这些项目时 问题就出现了 我似乎无
  • 如何创建用于测试的对象的 PagedList?

    我一直在使用 Google 的 arch 库 但是让测试变得困难的一件事是使用PagedList 对于此示例 我使用存储库模式并从 API 或网络返回详细信息 因此 在 ViewModel 中 我调用此接口方法 override fun g
  • 屏幕方向更改后应用程序崩溃

    我有以下问题 启动后 应用程序工作正常 即使在更改屏幕方向后也是如此 应用程序尚未准备好处理方向更改 例如替代布局等 因此仅显示旋转的默认布局就可以了 但是 当我通过按后退键离开应用程序 更改方向并在再次启动应用程序后立即崩溃 崩溃后 如果
  • androidx.navigation.fragment.NavHostFragment 无法从 xml 文件访问

    我正在尝试使用带有底部导航视图的 androidx 导航 因此 当我在 xml 文件中放置带有 android name androidx navigation fragment NavHostFragment 的片段时 它会给我一个错误
  • SQlite 获取最近的位置(带有纬度和经度)

    我的 SQLite 数据库中存储有纬度和经度的数据 我想获取距我输入的参数最近的位置 例如我当前的位置 纬度 经度等 我知道这在 MySQL 中是可能的 并且我已经做了相当多的研究 SQLite 需要一个自定义外部函数来实现半正弦公式 计算
  • 为什么 document.getelementbyId 在 Firefox 中不起作用?

    我不明白为什么 document getElementById 在 Firefox 中不起作用 document getElementById main style width 100 当我检查 Firebug 时 它说 类型错误 docu
  • 找不到R类

    当我打开 Eclipse 时 R class在我的项目中消失了 为什么 我有 eclipse juno 和最新版本的 android SDK The R class不会重新生成 因为代码中有错误 我怎么解决这个问题 Try Project
  • Android Lollipop:将应用程序小部件添加到主屏幕时启动器崩溃

    添加小部件时 启动器在 Android Lollipop 上崩溃 并显示以下消息 在以前的 Android 版本上运行良好 编辑 这只发生在横向方向 12 16 12 35 10 208 E AndroidRuntime 960 java
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • 更改javascript nodejs中所有页面的href url

    我已经实现了具有多种语言下拉菜单的引导导航栏 当我选择语言时 它将翻译页面 如何更改其他页面的 url 和按钮文本 当我选择french 将所有网址更改为 fr about and fr contact 如何使用 JavaScript 进行

随机推荐

  • 函数“fn:encode-for-uri”导致 XSLT 出错

    我需要对 XSLT 中的字符串进行 URL 编码 但函数 fn encode for uri 破坏了脚本 我在网上查了一下 显然它是命名空间的一部分 http www w3 org 2005 xpath functions 因此 我将以下行
  • 与另一个启动文件链接

    我正在尝试使用以下命令将程序与我自己的启动文件链接STARTUPLD 脚本中的指令 ENTRY start STARTUP my crt1 o GCC驱动程序用于链接程序 不关心像libgcc等库路径 gcc T my script ld
  • 如何仅使某些结构字段可变?

    我有一个结构 pub struct Test pub x i32 pub y i32 我想要一个改变这个的函数 简单 pub fn mutateit mut self self x 1 这使得整个结构在函数调用期间是可变的mutateit
  • java中工厂方法模式如何使用泛型?

    我的代码如下所示 public interface BaseDAO marker interface public interface CustomerDAO extends BaseDAO public void createCustom
  • 如何让 SoapClient 尊重会话?

    我正在使用电子商务购物车的 SOAP API 但我似乎无法让会话在不同页面中持续存在 作为示例 我下面有一些测试代码 带有一堆调试消息 它将一个项目添加到购物车 然后查看购物车 当我在浏览器中运行它时 它工作得很好 但是如果我刷新页面 我预
  • Flutter Google Chart Gauge - 将标签放在中心内

    我正在看图表颤振 https pub dartlang org packages charts flutter包裹 我需要实现一个仪表图表 其中有一个分段及其标签值位于仪表的中心 请参阅下面的模型文件 其中所需类型的三个图表放置在一行中 使
  • 仅使用变量进行单元测试

    我正在使用 Objective c 为 iPhone 应用程序编写单元测试 例如 我只想在编译测试用例时使用一些变量 ifdef UNIT TESTING synthesize requestFinished networkAvailabl
  • DTO 和实体是否都应该具有输入验证

    我有一个 WCF 层 我的域模型位于该 WCF 层后面 我使用 Nhibernate 作为 ORM 工具 我的所有业务逻辑 数据访问等都将位于此 WCF 层后面 我正在向我的客户公开 DTO 我有以下问题 1 我应该创建DTO吗 直接向 W
  • 针对开发的伪代码编辑器的建议[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Python Minidom:更改节点的值

    我正在使用 Python 的 minidom 库来尝试操作一些 XML 文件 这是一个示例文件
  • 当套接字错误发生时,QWebSocket 底层的 QTcpSocket(或 QSslSocket)是否会被自身破坏?

    When a QTcpSocket or QSslSocket 升级为QWebSocket 前者必须存储以供将来使用 因为它需要 无论何处都移动到同一个线程QWebSocket正在moveToThread deleteLater 每当QWe
  • Windows Azure 网站覆盖了我的 node.js 应用程序中的 404 和 500 错误页面

    我正在使用 Windows Azure 网站来托管 node js 应用程序 到目前为止 除了我的自定义错误之外 一切都很好 在我的节点应用程序中 我有一个错误处理程序 可以在我的本地计算机上很好地呈现自定义 404 和自定义 500 错误
  • 保留 python os.popen() 的彩色输出

    我正在使用 Python 使用 msbuild exe 从给定目录构建多个 VS 解决方案 我只想要特定的输出 但为了节省工作 解释结果的最佳方法是使用原始 ANSI 编码 Example import os output os popen
  • 了解 Cassandra 背后的哲学

    我正在尝试熟悉 Apache Cassandra 以完成特定的 PoC 工作 在浏览了网上的各种文章 尝试了各种可用的库 客户端之后 我的脑海中突然出现了一个特定的问题 我们想到 Cassandra 的最初原因是因为我们想要一个 真正的 分
  • 如何更改剃刀中剑道网格的可分页消息?

    我在 javascript 中找到了 但我无法做到这一点 谁能说一下剃须刀中的 显示 如何 pageable messages display 0 1 of 2 items 0 is the index of the first recor
  • 将新项目添加到 Android 上的列表视图顶部?

    安卓有转录模式 http developer android com reference android widget AbsListView html setTranscriptMode 28int 29当新数据添加到适配器时 允许自动将
  • 使用命令名称/选项直接调用 distutils 或 setuptools 的 setup() 函数,而不解析命令行?

    我想以一种稍微非常规的方式调用Python的distutils或setuptools的setup 函数 但我不确定distutils是否适合这种用法 举个例子 假设我当前有一个 setup py 文件 它看起来像这样 从 distutils
  • 访问共享首选项时 Android 中的 ConcurrentModificationException

    当我开发一个android应用程序时 我遇到了我没有任何线索的异常 我用谷歌搜索了相关主题 但没有一个有帮助 Fatal Exception java util ConcurrentModificationException java ut
  • 在 jQuery 验证插件中自定义事件委托

    我目前正在设置 jQuery 验证插件以在我们的项目中使用 默认情况下 会自动设置一些事件来进行处理 IE 所有输入火验证上的焦点输入 输出 按键事件 我希望它仅在单击提交按钮时触发 此功能似乎内置于插件中 这使得很难做到这一点 不修改插件
  • Android 7 WebView 与wrap_content

    我有一个WebView with android layout height wrap content 里面一个ScrollView 在 Android 7 之前 这会导致 WebView 的大小调整为我设置的本地 html 内容的高度lo