0

私は 135 画面のアプリケーションを持っているので、それがアプリケーションの愚かな計画になることはわかっていますが、残念ながらこれは要件です.すべての画面を html として作成し、それを資産に入れ、それを文字列に読み取ることを計画しているため2つのWebビューにロードします。アニメーションとともにロードする必要があるため、2 つの Web ビューを使用しています。

この方法がどれほど効率的かはわかりません.ほとんどのブログやフォーラムで読んだように.これは多くのパフォーマンスの問題を引き起こします.今私の問題は、2つのWebビューに4つのhtmlをロードしようとしているということです. webview へのアニメーション。この 2 つの Web ビューはフレーム レイアウトになります。同じことをすると、以下に示す多くの問題が発生します。

  1. Webview がちらつきます。
  2. アニメーションが発生すると、アンロードされた html が以前にロードされた間に表示されることがあります。
  3. ページがロードされていないことがあり、画面上でユーザーの操作が発生した場合にのみ表示されます。
  4. 2 つのページのロードの間に白いページが表示されることがあります。

ちらつきとその間の白いページが直面している主な問題です.これらの問題を解決する方法を教えてください.私はこれを成し遂げるのに本当に苦労しています.これが135のhtmlをロードする効率的な方法でない場合は、私に最善を教えてください. 1.これにどのように取り組んでいるかを示すために、コードの一部を以下に示します....事前に感謝します..

wv1.loadDataWithBaseURL("file:///android_asset/",
                        readFromAssests("rechercherunjob.html"), "text/html",
                        "UTF-8", null);

                anim_right_to_left_in = AnimationUtils.loadAnimation(getBaseContext(), R.anim.right_to_left_in);
                anim_left_to_right_out = AnimationUtils.loadAnimation(getBaseContext(), R.anim.right_to_left_out);

                anim_left_to_right_out.setAnimationListener(new AnimationListener() {
                            @Override
                            public void onAnimationStart(Animation animation) {
                                wv1.bringToFront();
                            }

                            @Override
                            public void onAnimationRepeat(Animation animation){
                            }

                            @Override
                            public void onAnimationEnd(Animation animation) {
                                runOnUiThread(new Runnable() {
                                    public void run() {
                                        Toast.makeText(LoadHTMLActivity.this,
                                                "anim end 2",
                                                Toast.LENGTH_SHORT).show();
                                    }
                                });
                                wv2.loadDataWithBaseURL(
                                        "file:///android_asset/",
                                        readFromAssests("blank.html"),
                                        "text/html", "UTF-8", null);
                            }
                        });


                final Handler Handler1 = new Handler();
                Runnable mUpdateTimeTask1 = new Runnable() {
                    public void run() {

                        wv1.setAnimation(anim_right_to_left_in);
                        wv2.setAnimation(anim_left_to_right_out);
                    }
                };
                Handler1.postDelayed(mUpdateTimeTask1, 1000);
4

1 に答える 1

0

あなたの場合Fragments、それらにカスタムアニメーショントランジションを使用して設定し、いくつかを使用しない方が良いと思いますWebViews。絶対にすべての125htmlをメモリに保持しようとすると、アプリケーションが正常に動作することはありません。

于 2012-11-20T10:37:54.420 に答える