私はフラグメントを学習していますが、フラグメントにコンテナが必要な理由の背後にある意味を理解できません。Android用フラグメントのコンテナの目的
次のように仕事がある私は、フラグメントを理解する方法:
FragmentActivity setContentviewは断片が位置するであろう場所 を定義するXMLファイルを参照します。
FragmentActivity次に容器に断片を割り当て断片
のインスタンスを作成します。
FragmentManagerに表示されます。
次に、実際のFragmentクラスはレイアウトを膨張させ、 にすべてのアプリケーションUIコンポーネントが含まれるのはこのレイアウトです。
(ここで私が覚えているので、私が覚えているので、ここで訂正してください)
コンテナの目的はなぜ私たちも必要なのですが、私が見たすべての例では、これは単に空の相対レイアウトxmlドキュメントであるからです。
異なるフラグメントが(同じRelativeLayout xmlファイルから)同じコンテナを共有できますか?彼らはListFragmentを持っているし、アイテムがコールバックインタフェースを使用して選択されたときに我々は最終的にはこのコード行に取得
グーグルhttp://developer.android.com/training/basics/fragments/creating.htmlによって提供された例ではそう
:
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
マイ他の質問は次のとおりです:
1)なぜこのコード行は、記事断片でListFragment(左側の断片)を置き換えないのですか?それが初期化されたとき以来、私たちは以下を参照してください。
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
代わりに... ListFragmentは左側に残り、右のフラグメントが更新されます。 ただし、container_containerはfirstFragmentに属します。これはListFragmentです。 これは更新されたものではありません。
なぜ私に質問がありますか?これはチュートリアルでは説明していません。ここで
ステートメント "フラグメントを処理できる特殊なタイプのアクティビティが必要なので、フラグメンテーションアクティビティです。"旧バージョンのアンドロイドにも、サポートライブラリを使用しているときにも当てはまります。現在のバージョン(Android API 19など)では、デフォルトのアクティビティに既にフラグメント機能があります。例えば。 getFragmentManager()関数:http://developer.android.com/reference/android/app/Activity.html#getFragmentManager() – treesAreEverywhere
複数のフラグメントを含むコンテナ内の特定のフラグメントを新しいフラグメントに置き換えるにはどうすればよいですか? –
フラグメントの置換は、同じコンテナを共有する異なるフラグメントと同じではありません。一方が他方に置き換えられた場合、2つのフラグメントはコンテナを共有できません。 – craned