2018年1月16日 星期二

[Android] BottomBar遮住中間容器的內容,怎辦?

問題:
我用CoordinatorLayout包住Toolbar、FrameLayout、BottomNavigationView,但是我不想讓上下這2個bar根據捲動在那伸縮隱藏,而是要固定顯示,中間的FrameLayout我要拿來換Fragment,但是FrameLayout下方被Bottombar遮住了,無法完整顯示,怎辦?

處理:
Google「BottomNavigationView CoordinatorLayout」→ Google「BottomNavigationView 」

參考:StackOverflow1StackOverflow2StackOverflow3知乎CSDN

說明:
首先先說一下,CoordinatorLayout是拿來裝什麼的?
就是裝會伸縮滑動的原件,像是Toolbar、FAB、Snackbar等。

  1. 如果想做伸縮:目前Android官方的BottomNavigationView還不支援伸縮,所以官方範例也沒有裝在CoordinatorLayout裡面,真要做會伸縮的BottomBar只有用第三方,或是套用別人做好的BottomNavigationBehavior,可參考StackOverflow2,或是我之前po的這篇

  2.  如果想做固定:簡單說Bottombar不要在包CoordinatorLayout裡,用其他LinearLayout或RelativeLayout裝吧,看參考來源都是這樣;如果Toolbar跟BottomBar都想固定,但是想有要SnackBar功能在BottomBar上方,那就...用CoordinatorLayout包住中間的FrameLayout就好。

  3. 如果想根據設定,決定要捲不捲:哈,也許第三方包有,我沒找;我想出的辦法是...1:根據設定決定外部容器(讀不同layout)、2:外面都是CoordinatorLayout,但根據設定決定內容的margin、3:根據設定動態決定BottomBar要加到哪個容器。

話說,真的希望官方把BottomNavigationBehavior做進去元件呀...

沒有留言:

張貼留言