2

フラグメントを作成するさまざまな方法を見てきました。誰かが私に方法の違いと最善の方法とそれをいつ使用するかを明確にすることができますか?

  1. new MyFragment()当たり前のように思えたので、私自身もこれを使っています。
  2. MyFragment.instantiate(Context context, String fname, Bundle args)これはフラグメントを作成するためのカスタム静的メソッドのように見えますが、使用されているのを見たことがありません。
  3. My.Fragment.newInstance()これはAndroid開発者の例にあります。

各オプションの目的は何ですか?

4

1 に答える 1

4

最も大きな違いは、各サンプルをいつ使用するかです。

1-呼び出されるたびに新しいフラグメントオブジェクトを作成します。

2-空のコンストラクターを呼び出すのと同じですが、フラグメントをsetRetainInstance(true)に設定した場合、空のコンストラクターを使用するとこれは機能しません。

3- My.Fragment.newInstance()、静的フラグメントから単一インスタンスを取得するメソッド。静的クラス拡張フラグメントがある場合は、新しいフラグメントまたは現在のフラグメント、つまりシングルトンパターンを返すメソッドを作成できます。

4-空のコンストラクターを呼び出すのと同じように、xmlからインフレートします。AndroidFrameWorkはビューへのアタッチメントを処理しますが、インスタンスはホールアクティビティのライフサイクルで維持され、より多くのメモリを必要とし、複数回再利用することはできません。

于 2012-09-28T09:20:48.783 に答える