Fragmentを使ってみる

Fragmentは便利そうなんですが、解説を見てもなかなか使い勝手が分からず敬遠してました。

ずっと避けててもしかたないので、向き合ってみようと思います。

フラグメントはFragmentクラスを継承して作ります。

フラグメントをプロジェクトから生成したときに自動で作られるコードです。

フラグメントを作るときの、アクティヴィティ側のコードはこんな感じです。

落ち着いて一つ一つ見てみると意外と使いこなせそうな気がしてきます。

アクティヴィティからフラグメントに渡す引数について

newInstance(引数1、引数2)

で引数を渡しますが、onCreateのところでBundleを通して入れてます。

じっくり考えてみると、newInstanceのところで、フィールドのmparam1に直接入れてもよさそうな気がします。

こんな感じで。

ですけど、これはダメなそうで。

Fragmentはシステムの方で破棄されたりするんだそうですが、再生成されるときにこれだとmParam1が消えてしまったりするそうで。

自動生成される通りにBundleを通した方が良いようです。

onAttach

自分でも使ってみたんですが。

フラグメントのライフサイクル的にはonAttach()が最初に呼ばれるらしいんですが、デバッグモードで1つずつ処理を見てみると、onAttachが呼ばれていない……。

別に困ることはなかったんですが、結局どういうことか分かりませんでした。

そんなこともありましたけど。

とりあえず最低限使えるようにはなった感じです。

何とか使いこなせるような気がしてきました。

使うにあたって色々調べたことをMEMOしておきました。