FloatingActionButton是懸浮操作按鈕,它繼承自imageview,所以說它具備有imageview所有的方法和屬性。與其他按鈕不同的是,FloatingActionButton默認就是圓形的,只要設置背景色和背景圖片,展現出來的就圓形按鈕,FloatingActionButton常用的屬性有:
- app:backgroundTint - 設置FAB的背景顏色。
- app:rippleColor - 設置FAB點擊時的背景顏色。
- app:borderWidth - 該屬性尤為重要,如果不設置0dp,那么在4.1的sdk上FAB會顯示為正方形,而且在5.0以后的sdk沒有陰影效果。所以設置為borderWidth="0dp"。
- app:elevation - 默認狀態下FAB的陰影大小。
- app:pressedTranslationZ - 點擊時候FAB的陰影大小。
- app:fabSize - 設置FAB的大小,該屬性有兩個值,分別為normal和mini,對應的FAB大小分別為56dp和40dp。
- src - 設置FAB的圖標,Google建議符合Design設計的該圖標大小為24dp。
- app:layout_anchor - 設置FAB的錨點,即以哪個控件為參照點設置位置。
- app:layout_anchorGravity - 設置FAB相對錨點的位置,值有 bottom、center、right、left、top等。
實現的代碼如下:
1 <android.support.design.widget.FloatingActionButton 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:layout_gravity="center_horizontal" 5 android:src="@mipmap/icon" 6 app:backgroundTint="#ff87ffeb" 7 app:rippleColor="#33728dff" 8 app:elevation="6dp" 9 app:pressedTranslationZ="12dp" />
同時有時為了實現和背面控件的同步滑動(如:有時候要調用Snackbar的時候,不同步滑動會有相互遮擋的問題),這個時候就需要把需要同步滑動的控件都放在CollapsingToolbarLayout控件中,關於CollapsingToolbarLayout的使用方式,在前面的博客中介紹過。
5.x存在的一些問題
- 木有陰影
記得設置app:borderWidth="0dp"。
- 按上述設置后,陰影出現了,但是竟然有矩形的邊界(未設置margin時,可以看出)
需要設置一個margin的值。在5.0之前,會默認就有一個外邊距(不過並非是margin,只是效果相同)。
so,良好的實踐是:
- 添加屬性
app:borderWidth="0dp" - 對於5.x設置一個合理的margin
不是悶騷的程序員算不上程序員。我的微信公眾號“那點鼻事”,在這里周一到周五每天一篇文章,與技術無關,只哈牛逼。

