AndroidのBottomSheetを触る機会があったのでメモ。
基本的な実装はmaterial.ioを見ればだいたい全部分かる。
Standard Bottom Sheet
はメイン画面と同時に表示・操作することができる
Modal Buttom Sheet
はシート表示中はメイン画面は操作できない。灰色オーバーレイがかかる。これをカスタムすることはできない(はず)。
前者は CoordinatorLayout
を使ったレイアウトxmlで、後者はBottomSheetDialogFragment
で実装を行う。
シートの挙動制御はいずれも BottomSheetBehavior
を介して行う。
material.ioと併せてBehaviorのドキュメントには目を通したい。
アプリ内で統一した初期値を与える必要がある場合には、Standard Bottom Sheet
だったらstyleを定義してあげる。
BottomSheetDialogFragment
の方はレイアウトxmlで初期値を与えることができるので、共通化できそうではある。
シートの上部を丸角にしたくなるが、素直に実装するとハマる。
何かというと、Expanded
な状態のときに丸角は許可されていないため、自動的にround = 0dp になってしまう。
materialのバージョンによっても挙動が違うかもしれない。 対処方法は調べるといろいろと出てくる。
全体的に直感的に使えるインターフェースという印象だった。