Material Design
FloatingActionBar
实现悬浮按钮。
设置悬浮按钮其实跟普通的按钮没多大区别。
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fab"
android:layout_gravity = "bottom|end"
android:layout_margin="16dp"
android:src="@drawable/ic_done"
app:elevation="8dp"/>
</FrameLayout>
elevation是设置悬浮程度。
使用Snackbar 升级Toast
SnackBar的效果其实是给用户一个确认的空间,比如删除文件时,会询问是否要删除。
binding.fab.setOnClickListener{ view->
run {
Snackbar.make(view, "Data deleted", Snackbar.LENGTH_SHORT)
.setAction("Undo") {
Toast.makeText(this, "Data restored", Toast.LENGTH_SHORT).show()
}.show()
}
// Toast.makeText(this,"FAB clicked",Toast.LENGTH_SHORT).show()
}
调用Snackbar的make方法,接收当前的一个View(任意一个),后面的参数都与Toast是相似的。最后又调用了一个setAction方法,配合Toast提示用户是否要删除。
CoordinatorLayout
加强版的FrameLayout,多加了一些Material功能。
可以监听所有子控件的各种事件。
比如刚刚弹出的信息将悬浮按钮遮住了,可以通过它来实现上移。
而CoordinatorLayout的实现只需要将原来的Frame Layout布局
更改即可
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
...
</androidx.coordinatorlayout.widget.CoordinatorLayout>