Floating Action Button のちょっとした落とし穴
Material Design に登場した部品で一番感動したのは、Floating Action Button(通称、FAB)である。
スマートフォン端末が大型化する中、頻繁に押される追加ボタンがツールバー(iOS では、ナビゲーションバー)上にあると指が届かなくて困る、というシーンが多く見られた。それを解決するために、FAB は右下の指の届きやすい位置に配置されている。
iOS アプリでは Material Design のように明快なルールがないから、タブバー上に追加(投稿)ボタンを埋め込んだりだとか(Instagram)、リスト内から投稿画面を呼び出せるような UI にしている(Facebook)。
さて、Android アプリに、FAB を採用する際に考えておくことがひとつある。デザイン段階で気付きにくいのだが、リストの最下部までスクロールした時に、リストの項目と FAB がかぶることだ。項目の右側をユーザーに確実に読ませたい時は、困ったことになる。
これを回避することに決めたら、ListView の下部に余白を設けることになるだろう。実装のアプローチとしては、2 通りある。
- ListView に
paddingBottom
とclipToPadding=false
を指定する ListView.addFooterView()
で余白のあるビューを追加する
ちなみに、Android Design Support Library で FAB がサポートされたのだが、以前試した段階では、Lolipop 以降でも影が落ちなかったり、丸にならなかったりといったバグがあったため、今のところは独自で実装している。