読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

ToolbarはFragmentに持たせても良いと思う

Y.A.M の 雑記帳: Fragment に Toolbar を持たせるのはやめなさい を読んで思ったことです。

ぼくはFragmentにToolbarを持たせても良いと思ってます。

もちろんActivityに置くことでFragment側がシンプルになるので、極力そうしたい感じですが、色々と事情があります。

例えばFragmetごとにToolbarに独自のViewを入れたりしたい場合があります。記事では android:actionViewClass を使えば良いと書いていますが、Toolbar使う理由ってレイアウトファイルでToolbar内を簡単にカスタマイズできることだと思っています。Toolbar内をカスタマイズしたほうがコード自体も見通しが良くなる場合もあると思います。もちろんSearchView などの便利なやつは android:actionViewClass で使いますが。

あとはDataBinding絡みで簡単にToolbar内のViewにアクセス可能になります。 android:actionViewClassでもDataBindingUtil.bindを使えばいけるかもしれないですが、わざわざ複雑さを増すようなことはしたくないなぁと個人的には思います。

じゃ、Googleはどうしてるの?ってのを思って調べたら、googlesamplesで実装を見かけました。揚げ足取りみたいな感じでアレですが…

https://github.com/googlesamples/friendlyping/blob/ee8e2bb4084b1326f414903ca0e4b1189489ad5c/android/app/src/main/java/com/google/samples/apps/friendlyping/fragment/FriendlyPingFragment.java#L169

こういうのは難しいところで、正解は無いと考えています。

今回は賛同できませんでしたが、そういう考えで実装を進めることは非常に良いと思います。

すいません、少しモヤモヤしたところあったので書かせてもらいました。