WebViewClient中的onPageFinished似乎不能正确触发

3

我在 Stack Overflow 上看到了一个类似的问题,但并没有得到解决。

我正在使用 LoadData() 方法加载应用生成的 HTML。

我注意到当我在新文本后添加一些空行时,页面会滚动并且文本需要一段时间才会神奇地出现(没有滚动,它只是淡入显示)。

在 onPageFinshed() 事件中,即使我观察 .getContentHeight(),它也不会更新,但在页面上随后添加文本时会更新。

我创建了一个定时器事件来观察 getContentHeight。即使我发现 getContentHeight 已经改变并且发出 browser.pageDown(true) 命令,页面仍然无法滚动到底部。

在第一次进入活动时,它似乎工作正常。只有在我向 newInnerHTML 添加几行时才会出现问题。

此外,涉及的视图具有带有浏览器的页眉和页脚。WebView 不在页脚后面。

这是一个 bug 吗,还是我漏掉了什么?

TIA, Jim

此代码位于活动的 onCreate 中。

        final WebView browser = (WebView) findViewById(R.id.webview);
        browser.setWebViewClient(new WebViewClient() {  
            @Override  
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(browser, url);
              //  browser.computeScroll();  //didn't help
                Log.d(TAG,"page getContentHeight: " + browser.getContentHeight());
                Log.d(TAG,"page finished");
                browser.pageDown(true);
            }  
        });

这个方法是在活动的onCreate之后调用的。
私有void UpdateMessageDisplay() {
     //loadData fires onPageFinished but without the new data
     browser.loadData("<html><body>" + newInnerHTML + "</body></html>", "text/html", "utf-8");
     //reload() again fires onPageFinished but this time with new data
     browser.reload();

}
1个回答

1

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