【Android】Androidの基本を覚えた後に覚えたいこと~はじめてのFragment①~の続きです。
Fragmentの使用
前回も、「コードの中で追加する」で少し触れていますが、コード上でActivityへFragmentを追加する方法を詳しくまとめます。
以下、サンプルコードです。
// FragmentManagerからFragmentTransactionを作成
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 実際に使用するFragmentの作成
Fragment newFragment = new SampleFragment();
// Fragmentを組み込む
transaction.replace(R.id.fragment_container, newFragment);
// backstackに追加
transaction.addToBackStack(null);
// 上記の変更を反映する
transaction.commit();
FragmentTransaction
Fragmentを使用するときには、FragmentTransactionを使用します。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
このFragmentTransaction(transaction)に対して、Fragmentの変更などを設定していきます。
ActivityへFragmentを組み込む
今回のサンプルコードではreplaceメソッドを使用しています。
transaction.replace(R.id.fragment_container, newFragment);
第1引数はFragmentが入るViewのID、第2引数は挿入するFragmentです。
第1引数で指定したViewのIDの部分にすでにFragmentが存在する場合は、そのFragmentをremnove(削除)してから、第2引数のFragmentをadd(追加)します。
このほかにもFragmentをActivityに追加したり、削除したりすることもできます。
以下に、その他のメソッドをあげます。
メソッド | 説明 |
---|---|
add (int containerViewId, Fragment fragment)もしくはadd (Fragment fragment, String tag) | Fragmentを追加する。追加したいFragmentと追加したい場所のidもしくはtagを指定する |
remove (Fragment fragment) | Fragmentを削除する |
replace (int containerViewId, Fragment fragment) | すでにFragmentが存在する場合には、一度removeしてからaddする |
hide (Fragment fragment) | Fragmentを非表示にする |
show (Fragment fragment) | Fragmentを表示する |
Fragmentをbackstackに登録
transaction.addToBackStack(null);
このコードは、backstackにFragmentを追加しています。
バックキーを押すことによって、この状態の画面に戻ることができるようになります。
コミット
commitメソッドを呼び出すことで、これまでの変更を反映できます。
transaction.commit();
commitメソッドは、変更をすべて設定し、最後に呼び出す必要があります。