HTML コンテンツを表示する WebView を拡張するカスタム クラスがあります。ユーザーが HTML ドキュメント内のリンクをクリックすると、スクロールする X 値を計算し、scrollTo(x,y) を使用してランナブルを介してその場所を表示します (以下を参照)。
post( new Runnable() {
@Override
public void run() {
scrollTo( x, 0 );
MyWebView.this.invalidate();
MyWebView.this.buildDrawingCache();
MyWebView.this.refreshDrawableState();
MyWebView.this.postInvalidate();
}
} );
スクロールした後、webview がドキュメント全体のレンダリングに失敗する可能性があります。空白の長方形のチャンクが、テキストがあるべき場所に表示され、毎回ランダムに配置されているように見えます。これがスクリーンショットです: http://i.imgur.com/g192Y.jpg
WebView をタッチしてスクロールすると、欠落している部分がすぐにレンダリングされます。
これまでのところ、この動作は Samsung Galaxy 10.1 インチ タブレットに限定されています。
回避策/Webkitにページを再レンダリングさせる方法を知っている人はいますか?