-1

必要な理由は理解していますがFragments(独立した再利用可能なモジュール、それぞれがタブレットや携帯電話用に変更できる独自の UI を処理するなど)、これらの理由を無視Fragmentsして、ライフサイクルを持つ 3 ~ 4 のレイアウトをシンプルに保とうとすると、 3 ~ 4ViewGroupアイテムのレイアウトよりも「高価」に聞こえます。

Fragmentsビューを作成する必要があるたびに、ライフサイクル全体があります ( onAttach -> onCreate -> onCreateView ... )。つまり、1 つのレイアウトを持つアクティビティよりも多くのシステム リソースを使用していると思います。

リストのようなもの (ListFragment だけで 10 個のアイテムではない) がある場合、最悪の場合でも、 10 個のアイテムを持つ UI の方が 10個よりLinearLayoutsもはるかに高速ではないでしょうか?ViewGroupFragments

4

1 に答える 1

1

そうです、フラグメントは少し遅くなります。

ただし、より速い用語はかなり相対的です。また、正確なアプリケーションに応じて、時間の同じ絶対差が異なると見なすことができます。時期尚早の最適化にも注意してください。

私は簡単な測定を準備しました.2つRelativeLayoutsは単純なレイアウトとしてそれぞれ4TextViewつ追加され、同じレイアウトは2つのフラグメントとして追加されました(すべてxmlを介して行われます)。ViewTreeObserverを使用して、相対レイアウトが完全に描画された時間を測定しました。テストしたケースでは、ほとんどの場合、私のデバイスでは差が 10 ミリ秒未満でした。あなたのケースでも同じ測定を行うことをお勧めします。その後、フラグメントを削除する価値があるかどうかを判断します。これは、フラグメントが柔軟性、サポートの容易さ、再利用、コードの複雑さなどの場合に多くの利点をもたらすためです。

于 2013-07-20T07:01:02.103 に答える