android - RecyclerView 中的 Webview 有时仅在 Nougat 设备上显示空白屏幕

标签 android google-chrome webview

在我的 Nougat 设备中,RecyclerView 中的 webview 有时是空白的。当我慢慢滚动然后返回到 webview 项目内容消失。在 Android N 以下的设备上没有问题。Android N 使用 Chrome 作为应用程序的默认浏览器。所以我认为 Chrome 中可能存在错误,所以我也在 chrome 门户中提出了一个错误。 SO 中有几个相关问题,但这并没有解决我的问题。那么Android webview设置中有没有办法可以解决这个问题呢?我在错误链接中写了详细描述。

漏洞链接:click here

我的 WebView 的 onBindViewHolder 方法代码是

final VHItem vhItem = (VHItem) holder;

vhItem.webViewChild.getSettings().setUseWideViewPort(false);
vhItem.webViewChild.getSettings().setJavaScriptEnabled(true);

vhItem.webViewChild.loadData("<body>" + html + "</body>", "text/html;charset=utf-8", "utf-8");

在哪里

html is the html string

更新

他们已经解决了这个问题。如果您仍然遇到同样的问题,请尝试将您的 Android chrome 版本更新到 61 或更高版本。

最佳答案

首先,webview 会消耗内存,因为它加载必须加载和呈现 html 数据。与其在回收站 View 中使用 webview,我认为如果您通过以下两种方式之一实现它会更好:

  1. 您处理 html 中的数据列表并将其发送到 webview 并完全删除回收器 View
  2. 您在 xml 中绘制预期内容的布局并将其直接膨胀到 recyclerview 中并删除 webview 完成。 (注意:您可以根据适配器位置和该位置的数据将不同的 View 填充到回收器中)。

使用 webview 似乎是实现您正在尝试的任何东西的简单方法,但请相信我,弊大于利。所以最好避免它。

关于android - RecyclerView 中的 Webview 有时仅在 Nougat 设备上显示空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45300246/

相关文章:

android - 无法更改 Kotlin 中的全局变量值

angular - 当 angular 5 重新呈现大列表时,如何防止 chrome 滚动?

javascript - 如何优雅地停止html5视频播放

Android webview 有时会加载内容

android - Play 商店不支持 Nexus 6

java - ListAsGridBaseAdapter 仅在项目数为偶数时显示网格项目

android - 在我的 android 应用程序中增强帮助选项

javascript - Android Chrome 支持 webkitSpeechRecognition 吗?

android - 如何测量 Android WebView 入站/出站流量

css - Flex WebView 在 native react 中