我已經看到另一個這樣的問題,它沒有解決。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();
}