版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chennai1101/article/details/82349200
相关文章
Android Snackbar控件
Android FloatingActionButton控件
Android Toolbar控件
Android AppBarLayout控件
Android CollapsingToolbarLayout控件
1. FloatingActionButton类
FloatingActionButton是5.0版本出现的控件,显示一个圆形悬浮按钮。需要添加Design依赖库,并且使用Theme.AppCompat主题。
2. FloatingActionButton配置
FloatingActionButton的配置
- android:src,显示的图标,最好是24dp的
- app:backgroundTint:正常的背景颜色
- app:rippleColor,按下时的背景颜色
- app:elevation,正常的阴影大小(默认6dp)
- app:pressedTranslationZ,按下时的阴影大小(默认12dp)
- app:borderWidth,边框宽度
- app:layout_anchor,设置FAB的锚点,即以哪个控件为参照设置位置
- app:layout_anchorGravity,FAB相对于锚点的位置
- app:fabSize,normal或mini(对应56dp和40dp)
配置文件
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_qq"
app:rippleColor="#ffe5e5e5"
app:backgroundTint="#ffffffff"
app:elevation="6dp"
app:pressedTranslationZ="6dp"
app:fabSize="mini"
app:borderWidth="0dp"
android:layout_gravity="right|bottom"
android:layout_margin="20dp" />
效果如下
3. Snackbar交互
FloatingActionButton如果没有与Snackbar关联,容易被Snackbar覆盖。
设置FloatingActionButton在CoordinatorLayout内部,同时将这个CoordinatorLayout作为View参数传给Snackbar的make()
方法。
效果如下
查看了一下Snackbar的源码,如果父视图是CoordinatorLayout,创建Snackbar的时候,会设置LayoutParams的insetEdge属性。
final CoordinatorLayout.LayoutParams clp = (CoordinatorLayout.LayoutParams) lp;
// Also set the inset edge so that views can dodge the bar correctly
clp.insetEdge = Gravity.BOTTOM;