LoginSignup
74
75

More than 1 year has passed since last update.

【Android】Androidの基本を覚えた後に覚えたいこと~はじめてのFragment②~

Last updated at Posted at 2015-04-21

【Android】Androidの基本を覚えた後に覚えたいこと~はじめてのFragment①~の続きです。

Fragmentの使用

前回も、「コードの中で追加する」で少し触れていますが、コード上でActivityへFragmentを追加する方法を詳しくまとめます。
以下、サンプルコードです。

MainActivity.java
// 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メソッドは、変更をすべて設定し、最後に呼び出す必要があります。

参考

74
75
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
75