Android Webview 预加载在 Nexus 上无法工作

4
我们正在使用本地HTML和SD卡中的所有资源来加载Android Webview。由于HTML很重(每页约1MB),因此我们正在使用预加载策略,即已经在内存中加载了Webview实例。
通过UI,我们有一个水平滚动视图,其中包含一系列Webview的线性布局。
除Nexus7外,预加载策略适用于所有设备。在Nexus7上,网页正在加载但无法显示。这意味着当我向下滑动到下一页时,它首先显示空白屏幕,然后才显示网页。但对于其他设备,它甚至不会显示空白页面。
我们尝试了所有参数,如硬件加速、DOMCacheEnabled和其他参数。我们需要避免空白屏幕,以便用户向下滑动到下一页时能直接看到HTML,而不是先看到空白页面再看到HTML。
请建议是否还有其他方法可供使用。

我也在尝试实现同样的事情。你能提供一些有关你的预加载策略如何工作的细节吗?谢谢! - Yaniv Efraim
你好, 我们正在尝试将当前页(current)、前一页(current-1)和后一页(current+1)一起加载到内存中。一旦用户滑动屏幕,我们已经构建了算法来相应地加载新的页面。现在这种方法在除 Nexus 之外的所有其他设备上似乎都很好用。 - Adeesh Jain
1个回答

0

我实现了一个类似的解决方案,我的策略如下:

为必要的页面创建Web视图,添加它们,隐藏它们,监听它们的加载,然后在WebViewClient告诉您它们已经完成加载时呈现页面。

我认为让它们显示内容(而不是有时显示空白)的诀窍是:

1 将Web视图添加到布局中

2 调用View.setVisibility(View.GONE)

3 等待它加载

4 View.setVisibility(View.VISIBLE)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接