我有一个自定义类,扩展了显示HTML内容的WebView。当用户单击HTML文档中的链接时,我计算要滚动到的X值,然后使用scrollTo(x,y)通过runnable显示该位置(见下文)
post( new Runnable() {
@Override
public void run() {
scrollTo( x, 0 );
MyWebView.this.invalidate();
MyWebView.this.buildDrawingCache();
MyWebView.this.refreshDrawableState();
MyWebView.this.postInvalidate();
}
} );
滚动后,webview可能无法呈现整个文档。显示文本应该是的白色空间的矩形块,每次都看似随机放置。以下是截图:http://i.imgur.com/g192Y.jpg
当我触摸webview进行滚动时,它会立即渲染缺失的部分。
到目前为止,这种行为仅限于三星Galaxy 10.1“平板电脑。
有没有人知道解决方法/如何强制webkit重新呈现页面?
答案 0 :(得分:6)
我在这个平板电脑上遇到了完全相同的问题,唯一的区别是我使用 iscroll 来完成所有滚动操作。我用于此问题的解决方案是通过JavaScript“滚动”一个隐藏的DIV并修复了问题。我希望这可以帮助任何有同样问题的人。如果你使用iscroll他们有一个“滚动”到固定位置的方法,也许这也可以帮助你,如果不是那么难以检测 touchmove 或 mousemove 事件。 这里的要点是你只需要在html的任何地方伪造一个滚动即使看不见。