2018年1月8日 星期一

[Android] 讓 Snackbar 不要被 BottomNavigationView (BottomBar) 遮住

問題:
根據Material Design的指導,Snackbar要在BottomBar之後但要長出頭,但實際直接叫Snackbar他躲在BottomBar後面說,怎麼辦?

處理:
Google 「BottomNavigationView  Snackbar」
找到幾種作法...

解法:

  1. 繼承改寫CoordinatorLayout.Behavior並在layout指給BottomBar的app:layout_behavior,詳細作法參考某日本Dev的GitHub某馬其頓Dev的Blog。這個做法較能重複利用,用的地方也較簡潔。
  2. 另一個方法是,用SnackBar時,自己抓它的View改它的padding(內部間距)或margin(外部距離),寫個method或是如果有要繼承改寫BottomNavigationView或Snackbar的話,可順便把方法加入。可參考某中國Dev的Blog
  3. 使用第三方BottomBar。
  4. 不要用Snackbar了,用Toast跟Dialog吧。


找資料時,也在StackOverflow看到網友反應的悲劇,4.4以下Snackbar遮BottomBar,5.0以上BottomBar遮Snackbar;

嘛....Google都是先設計UI規範,再實做元件 = =;

所以要Material Design各元件有簡單官方解,看來還有得等,官方解出來前,只能各自發揮創意或是先用有完整解的第三方元件了。

沒有留言:

張貼留言