2010-10-05 113 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(); 

} 

回答