フラグメントを学んでいますが、フラグメントがコンテナを必要とする理由の背後にある重要性を理解できていません。
フラグメントの動作を理解する方法は次のとおりです。
FragmentActivity setContentview は、フラグメントが配置される場所を定義する xml ファイルを参照します。
FragmentActivity はフラグメントのインスタンスを作成します
次に、フラグメントをコンテナーに割り当てます。
FragmentManager はそれらを表示します。
次に、実際の Fragment クラスがレイアウトを拡張します。このレイアウトには、すべてのアプリケーション UI コンポーネントが含まれます。
(私は今のところ学習しているだけなので、ここで何か見逃している場合は修正してください)。
では、コンテナの目的はなぜ必要なのですか。なぜなら、私が見たすべての例で、それは空白の相対レイアウト xml ドキュメントだからです。
異なるフラグメントが同じコンテナを共有できますか (RelativeLayout xml ファイルにすぎないため)?
したがって、Google http://developer.android.com/training/basics/fragments/creating.htmlが提供する例では
これらには ListFragment があり、CallBack インターフェイスを使用して項目が選択されると、最終的に次のコード行に戻ります。
// 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 は左側に残り、右側の Fragment が更新されます。しかし、コンテナ fragment_container は firstFragment に属します。これは ListFragment です。そして、これは更新されるものではありません。
なぜ私が質問したか分かりますか?これはチュートリアルでは説明されていません。