BottomSheetメモ

AndroidのBottomSheetを触る機会があったのでメモ。

基本的な実装はmaterial.ioを見ればだいたい全部分かる。

material.io

Standard Bottom Sheetはメイン画面と同時に表示・操作することができる Modal Buttom Sheetはシート表示中はメイン画面は操作できない。灰色オーバーレイがかかる。これをカスタムすることはできない(はず)。

前者は CoordinatorLayoutを使ったレイアウトxmlで、後者はBottomSheetDialogFragmentで実装を行う。 シートの挙動制御はいずれも BottomSheetBehaviorを介して行う。

material.ioと併せてBehaviorのドキュメントには目を通したい。

developer.android.com

アプリ内で統一した初期値を与える必要がある場合には、Standard Bottom Sheetだったらstyleを定義してあげる。 BottomSheetDialogFragmentの方はレイアウトxmlで初期値を与えることができるので、共通化できそうではある。

シートの上部を丸角にしたくなるが、素直に実装するとハマる。 何かというと、Expandedな状態のときに丸角は許可されていないため、自動的にround = 0dp になってしまう。

github.com

materialのバージョンによっても挙動が違うかもしれない。 対処方法は調べるといろいろと出てくる。

全体的に直感的に使えるインターフェースという印象だった。