3

これについて別の SO の質問を見たことがありますが、解決されませんでした。

アプリケーションで生成されたhtmlでLoadData()を使用しています。

新しいテキストの後に数行の空白行を追加すると、ページがスクロールし、テキストが魔法のように表示されるまで少し時間がかかることに気付きました (スクロールせず、フェードインのように表示されます)。

.getContentHeight() を監視すると、onPageFinshed() イベントでは更新されませんが、その後ページにテキストが追加されると更新されます。

getContentHeight を監視するタイマー イベントを作成しました。getContentHeight が変更され、 browser.pageDown(true) を発行した後でさえ、ページはまだ下にスクロールしていました。

初めてアクティビティに入ったときは問題なく動作しているようです。私の問題は、newInnerHTML に数行を追加した場合にのみ発生します。

さらに、関連するビューにはヘッダーとフッターがあり、ブラウザが中央にあります。webView はフッターの背後にはありません。

これはバグですか、それとも何か不足していますか?

ティア、ジム

このコードは、アクティビティの 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();

}
4

1 に答える 1

1

ここで部分的な回答を受け取りました。これにより、pageDown(true) が起動します。

webview loaddataスクロール設定がクリックされるまで更新されない

まだいくつかの問題があります。

于 2010-10-21T19:44:15.873 に答える