18

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にページを再レンダリングさせる方法を知っている人はいますか?

4

1 に答える 1

6

そのタブレットでもまったく同じ問題が発生しています。唯一の違いは、iscrollを使用してすべてのスクロールを実行していることです。私がこの問題に使用している解決策は、JavaScriptを介して非表示のDIVを「スクロール」することであり、これで問題が修正されました。これが同じ問題を抱えている人の助けになることを願っています。iscrollを使用する場合、固定位置に「スクロール」する方法があります。タッチムーブまたはマウスムーブのイベントを検出するのはそれほど難しくない場合でも、おそらくそれが役立つでしょここでのポイントは、表示されていない場合でも、htmlのどこかにスクロールを偽造する必要があるということです。

于 2012-07-27T15:59:35.060 に答える