ユーザ用ツール

サイト用ツール


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も無理)
上記二つが使えないともはやFragmentを使う意味が・・
http://y-anz-m.blogspot.jp/2012/04/android-fragment-fragmenttransaction.html

IllegalStateExceptionの回避

Fragment in Fragment

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

fragmentメモ.1434076052.txt.gz · 最終更新: 2015/06/12 11:27 by sou