2010-10-05 111 views
3

我已经看到另一个这样的问题,它没有解决。onPageFinished在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的活动

私人无效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(); 

} 

回答