Android的WebView中不能完全渲染内容,直到用户交互(Android WebView Fa

2019-07-29 05:00发布

我有一个显示HTML内容的自定义类扩展的WebView。 当用户点击在HTML文档中的链接,我计算X值以滚动到,然后使用scrollTo(X,Y)通过一个可运行的,以显示该位置(见下文)

 post( new Runnable() {

            @Override
            public void run() {

                scrollTo( x, 0 );
                MyWebView.this.invalidate();
                MyWebView.this.buildDrawingCache();
                MyWebView.this.refreshDrawableState();
                MyWebView.this.postInvalidate();
            }
        } );

滚动之后,有一个机会,web视图将无法呈现整个文档。 每一次的空白矩形块被示出,其中的文字应该是,用看似随意放置。 下面是截图: http://i.imgur.com/g192Y.jpg

当我接触到的WebView滚动,就会立刻呈现缺少的部分。

到目前为止,这种行为被限制在三星Galaxy 10.1" 平板电脑。

有谁知道一个解决方法/如何强制WebKit的重新渲染的页面?

Answer 1:

好吧,我与平板电脑在这里有完全相同的问题,唯一的区别是,我使用iscroll做所有的滚动。 我使用了这个问题的解决方案是“滚动”通过JavaScript一个隐藏的DIV,并且解决了这一问题。 我希望这可以帮助别人同样的问题。 如果你使用iscroll他们要“滚动”到固定位置的方法,也许可以帮你还,如果不能是不是很难检测的TouchMove鼠标移动事件。 这里的关键是,你只需要假滚动的任何位置上的HTML即使是不可见的。



文章来源: Android WebView Fails to Completely Render Content Until User Interaction