最終更新:2017-02-10 (金) 18:41:08 (2604d)
Android/フラグメント
フラグメント"として小さな UI 部品を作り、それを組み合わせて一つのアクティビティを作り上げる仕組み
http://developer.android.com/intl/ja/guide/components/fragments.html
概要
- Android 3.0からの機能。
- Android SDK/Support Libraryでそれ以前でも使用可能になる
- FragmentはActivityの内部に配置可能なライフサイクルを持つコンテナ
- 別のアクティビティで再利用できる「サブ アクティビティ」のようなもの
動作
- アクティビティのレイアウトの一部としてフラグメントを追加すると、フラグメントはアクティビティのビュー階層のViewGroupに置かれ、フラグメントが自身のビュー レイアウトを定義します。
- フラグメントをアクティビティのレイアウトに挿入するには、アクティビティのレイアウト ファイルでフラグメントを <fragment> として定義するか、アプリケーション コードで既存の ViewGroup に追加します。
識別子
- android:id で一意のIDをつける
- android:tag で一意の文字列をつける
- 両方指定しない場合、システムは container view の ID を使う
使い方
コード+レイアウト
- Fragmentを継承したクラスを実装
- Fragment.onCreateViewをオーバーライドしてViewを返す
表示
レイアウトXMLにfragment android:name=クラス名と指定
既存の ViewGroup にプログラムを使用してフラグメントを追加
FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); ExampleFragment fragment = new ExampleFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit();
取得
クラス
android.app.Fragment
android.support.v4.app.Fragment
android.app.FragmentManager
android.app.FragmentTransaction
- add()
- remove()
- replace()
アクティビティを取得
主な処理
- Fragment.onCreate
- View Fragment.onCreateView
- Fragment.onPause?