1

当我在 webview 上显示并隐藏时,它总是在屏幕上保持碎片,直到我触摸屏幕。例如,当点击一个按钮时,显示一个div,然而,这个div并没有完全显示,它只显示一半,如果我触摸屏幕,左边部分显示。然后,当点击按钮让这个div隐藏时,它没有完全隐藏,它只隐藏一部分,屏幕上的剩余部分直到我触摸屏幕,左侧部分消失了。

1. I use jquery show() and hide() method to show and hide the div
2. I have enabled hardware accelerate
3. I have set webview render priority as HIGH.

would you please give me some suggestions, thank you.

实际上,这是来自此链接的帖子,我刚刚遇到了同样的问题。

在我的项目中,我得到了一个包含两个按钮的 div。在某些情况下,我还必须显示/隐藏 div。更具体地说,固定定位用于将 div 固定在浏览器底部,就像页脚一样。这是div的css。

[id^="btns_div"]{
position: fixed;
bottom: 5px;
left: 10px;
z-index: 3;
background-color:#eeeeff;
width: 90%;
height: 10%;
font-size:20px;
display: none;
}

我尝试了许多不同的机制来避免这个渲染问题。我只是发现只有在分配 css:bottom 时才会出现问题。没有它,没有渲染问题,但位置错误。

任何建议表示赞赏。

4

1 回答 1

2

以我的经验,在使用 DOM 的页面的 web 视图上的完整硬件加速目前会导致数百万个问题。我做了很多测试试图找到一个可能的根本原因,但如果 Google / Chromium 不能自己工作,我们似乎无能为力。

硬件加速导致屏幕以完全不同的方式呈现,使用“显示列表”。作为一个非常便宜的简历,这种技术有成千上万的好处,但并不擅长检测非预期的更新,因此用户必须牢记这一点并“使”渲染“无效”。

这对于 Java 应用程序来说非常好,因为您在操作所在的位置进行编程,但是当您插入 web 视图时,事情开始变得复杂。请谷歌显示列表以获得扩展解释,了解这些事情发生的原因真的很值得。

因此,根据我的经验,我必须始终禁用 webview 的硬加速。我时不时地尝试新的 android 版本等等,但情况根本没有改善。

如果有人有更好的消息,请告诉!干杯。

于 2013-02-13T21:28:56.763 回答