私は以下の簡単なコードを持っています
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
これらのコード行は何をしますか?
getFragmentManager()
このアクティビティに関連付けられたフラグメントと対話するためのFragmentManagerを返します。
FragmentManagerは、フラグメントを追加、削除、または置換するためのトランザクションを作成するために使用されます。
fragmentManager.beginTransaction();
このFragmentManagerに関連付けられたFragmentsで一連の編集操作を開始します。
使用されるFragmentTransactionオブジェクト。
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
現在のフラグメントを、IDがR.id.fragment_container
のレイアウト上のmFeedFragment
に置き換えます
fragmentTransaction.addToBackStack(null);
このトランザクションをバックスタックに追加します。これは、トランザクションがコミットされた後に記憶され、後でスタックからポップされたときに操作を元に戻すことを意味します。
トランザクションをロールバックできるように、戻るボタンの使用に役立ちます。パラメーター名:
このバックスタック状態のオプションの名前、またはnullです。
情報については、他の質問を参照してください nullパラメーターを指定したaddToBackStackの意味は?
Lastステートメントはトランザクションをコミットし、すべてのコマンドを実行します。
詳細については、Googleのドキュメントをご覧ください。
http://developer.Android.com/reference/Android/support/v4/app/FragmentActivity.htmlhttp://developer.Android.com/reference/Android/app/ FragmentManager.htmlhttp://developer.Android.com/reference/Android/app/FragmentTransaction.html
FragmentManager
FragmentManager
は、AndroidでFragments
を管理します。具体的には、フラグメント間のトランザクションを処理します。トランザクションは、フラグメントを追加、置換、または削除する方法です。
FragmentTransaction
前に述べたように、FragmentTransaction
はAndroidでフラグメントを追加、置換、または削除するメソッドを提供します。フラグメントと対話するためのインターフェイスを提供します。
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
メソッドreplace(int containerViewId, Fragment fragment)
は、コンテナFragment
の既存のcontainerViewId
オブジェクトを置き換え、Fragment fragment
を追加します
fragmentTransaction.addToBackStack(null);
このメソッドaddToBackOfStack(String name)
は、このトランザクションをバックスタックに追加します。これは、Fragments
を記憶し、Activity
が再び使用できるように使用できます。
fragmentTransaction.commit();
メソッドcommit()
はこのトランザクションをスケジュールしますが、これは瞬時ではありません。メインスレッドで、スレッドの準備ができたときに実行されるようにスケジュールされています。