ユーザ用ツール

サイト用ツール


fragmentメモ

以前のリビジョンの文書です


Contextは継承していない

Contextを使いたい場合はgetActivity()する
onCreateViewした段階ではActivityがまだ生成されていないのでonActivityCreated以降で呼び出す

Fragmentに値を渡すときはsetArguments()

Android Fragment で setArguments() してるサンプルが多いのはなぜ?
http://y-anz-m.blogspot.jp/2012/04/androidfragment-setarguments.html

デフォルトコンストラクタをpublicにしないといけない

Activity の再生成に伴って Fragment を再生成するとき、FragmentManager はリフレクション
によってデフォルトコンストラクタを呼び出し、インスタンスを作って状態を戻そうとするので、
デフォルトコンストラクタにアクセス出来ないものはインスタンスの再生成に失敗します。
この制約から、匿名クラスを使った Fragment の取り扱いも不適切となります。

レイアウト(xml)からFragmentを生成しない

レイアウトから生成したfragmentはsetArguments()が出来ず、FragmentTransactionの対象
にも出来ない。(replaceも無理)

Android レイアウトから生成した Fragment は FragmentTransaction の対象にしてはいけない
http://y-anz-m.blogspot.jp/2012/04/android-fragment-fragmenttransaction.html

Fragment切り替え時のIllegalStateException

Fragment in Fragment

FragmentでFragmentを管理するときはgetChildFragmentManager()
Fragmentから親のFragmentを取得するときはgetParentFragment()

色々ややこしくなるし管理も大変なのであまりやらないほうが良さげ。
Fragmentの中でViewPagerを使うときくらい

fragmentメモ.1436155403.txt.gz · 最終更新: 2015/07/06 13:03 by sou