RecyclerView内的Webview有时仅在牛轧糖设备上显示空白屏幕
问题描述:
在我的Nougat设备中,RecyclerView内部的webview有时是空白的。当我慢慢滚动,然后回到webview项目内容消失。 Android N以下的设备没有问题。Android N使用Chrome作为应用的默认浏览器。所以我认为Chrome中可能存在一个bug,所以我在chrome门户中也发现了一个bug。 SO中有几个相关的问题,但这并没有解决我的问题。那么有没有办法在Android webview设置中解决这个问题?我在bug链接中写了详细描述。RecyclerView内的Webview有时仅在牛轧糖设备上显示空白屏幕
错误链接:为的WebView click here
我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是HTML字符串
更新
他们已经解决了这个问题。如果您仍然遇到同样的问题,请尝试将您的Android Chrome版本更新至61或更高版本。当您滚动速度非常快 Recyclerview纯粹是基于充气的观点最小的时间和重用现有的观点
答
这个问题可以到达许多可能的原因
- 。这意味着,当一个视图(一个项目)退出屏幕时,当您滚动屏幕时,只需通过更改其内容即可购买相同的视图。从Internet上加载时,首先下载所有数据并显示它总是更好。 Webview消耗大量数据,完全违背设计原则,让他们进入Recyclerview。
要修复此问题,您可能需要添加一些按钮以在每次显示视图时重新加载数据或刷新。
- 牛轧糖从http urlconnection类中删除了一些函数 我不确定这个。但在谷歌开发人员视频之一,T已经看到了一些关于某些功能和方法的贬值
希望你会发现这有帮助。
答
对于开始的webview消耗内存,因为它负载必须加载和呈现html数据。而不是在回收站视图中使用网页视图,我认为这将是更好,如果你实现它通过以下两种方式:
- 您处理数据的列表中的HTML,并将其发送到网页视图并删除回收站完全查看
- 您可以在xml中绘制预期内容的布局,并将其直接膨胀到recyclerview并移除完成的webview。 (注意:根据适配器在该位置的位置和数据,可以将不同视图充入回收站)。
使用webview可能似乎是实现任何你试图但相信我的简单方法,缺点超出了这个好处。所以它最好避免它。
你可以粘贴你的onBindViewHolder()。或者你完成适配器 –
@DigvijaySingh检查我编辑的问题。 – Kunu
此答案可能会帮助您https://stackoverflow.com/a/2379054/5908465 –