WebViewClient中的onPageFinished似乎没有正确触发

时间:2010-10-05 23:34:27

标签: android webviewclient

我已经看到另外一个关于此问题的问题并没有得到解决。

我正在使用LoadData()和应用程序生成的html。

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

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

我创建了一个计时器事件来监视getContentHeight。即使我发现getContentHeight已经更改并发出了browser.pageDown(true),页面仍然会滚动到底部。

第一次进入活动时似乎工作正常。我的问题只发生在我向newInnerHTML添加几行。

此外,所涉及的视图有一个页眉和页脚,浏览器位于中间。 webView不在页脚后面。

这是一个错误,还是我错过了什么?

TIA, 吉姆

此代码位于活动的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

之后

private 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 个答案:

答案 0 :(得分:1)

我在这里收到了部分答案,它确实触发了pageDown(true)。

webview loaddata scroll setting not updating till clicked

还有一些问题。