昨天講了 bottomSheet 如何在 layout 設定,今天來說說如何在程式碼裡實作。
首先要先提到 BottomSheetBehavior , 字面上就是在控制 BottomSheet 的相關行為 。
包含若是要在程式碼裡對 bottomSheet 做一些動態的修改,皆是要透過這個 BottomSheetBehavior 。
而要拿到 bottomSheetBehavior 的相關實例便要透過以下方法。
val bottomSheet = BottomSheetBehavior.from(bottomSheet)
bottomSheet
便是在 layout 裡指定 behavior 為 BottomSheet 的 ID。
而 BottomSheetBehavior 可以對 BottomSheet 做出包括展開、折疊、重新賦予動態高度....等等。
可以看看 Google Map APP 的 BottomSheet 便是可以拉到全畫面,也可以拉大概三分之一,也可以隱藏,這些行為都是靠 BottomSheetBehavior 來做到的。
向上圖一樣 Bottomsheet 可能需要動態調整大小
在昨天有提到一個屬性 app:behavior_peekHeight
我們可以在不同狀態下來對這個屬性做修改,便可以達到修改大小的功能,而至於 BottomSheet 有幾種狀態能夠使用呢,明天再針對狀態來做個討論。