2011-12-19 6 views
3

私はAndroid WebViewを使用して、実行時に生成されるいくつかのHTMLコンテンツ(正確にはHTMLタグ付きのString)を表示しています。コンテンツには基本的にHTML <table ...>があり、このテーブルの行は私のプログラムによって生成されます。 HTMLコンテンツは、loadDataWithBaseUrl()メソッドを呼び出すことでWebViewに読み込まれます。
新しい行を生成するたびに、新しい<tr></tr>を作成し、HTML文字列を変更して新しく作成した行をテーブルに追加します。 明らかに、私はloadDataWithBaseUrl()メソッドを呼び出してHTMLをリロードし、最新の行を表示する必要があります。生得的なWebViewの振る舞いによる望ましくないフリッカーの防止

今ここにいくつかの問題があります。
ファースト)は毎回loadDataWithBaseUrl()は、ページの最上部 セカンドへのWebViewスクロールと呼ばれている)私はそれがすべてロードされた後WebViewをスクロールしたいです最新の生成行が常に表示されます。

は今実際の問題:私は、ページの読み込みが完了した後にWebViewpageDown(true)メソッドを呼び出そうとした場合、私は厄介なアニメーションや、ユーザーが一番下までスクロールしWebViewの仕上がりを待つ必要がある
れますページの
このジャンプ動作を無効にする方法はまったくないようですが、私はJavaScriptに頼って、ページがロードされた後にページを一番下までスクロールしています(window.onloadの関数を呼び出します)
Now私は別の問題に直面している!それでも、WebViewがページをリロードしてスクロールし、JavaScript機能がページをすぐ下にスクロールさせることによって引き起こされるちらつきがあります。

私はここ数日の間に無駄な時間を費やしましたが、私の望む結果を達成する方法を見つけ出していません。この問題を解決する方法はありますか? (回避策/別の戦略かもしれない?)WebViewの本来の動作は、ページのロードが終了したときに上部にスクロールすることが原因であることは明らかです。

答えて

1

あなたはこのような何かを試すことができます:

if (_webView.getScrollY() + _webView.getHeight() > _webView.getContentHeight()) 
    _webView.scrollTo(0, _webView.getContentHeight() - _webView.getHeight()); 
+0

が..フリッカー!私がWebViewの自動スクロールを一番上にするのを防ぐことができたら....... – M2X