SnackBar介绍
- SnackBar是 android.support.design依赖包中的控件,使用前需引入该包。
- SnackBar类似Toast,具有提醒功能,不影响界面交互,提示之后可以自动消失,不同的是,SnackBar加入了Action,实现了与用户的交互。使用时不仅可以滑动取消,还可以点击取消。
使用方式
实现方式很简单,也和Toast类似:
- 如果不需要添加Action,可直接使用弹出Toast的方式:
Snackbar.make(layout,"这是一个snackBar",Snackbar.LENGTH_LONG).show();
- 当然也可以添加个可以点击的Action,并添加点击事件
// coordinalayout为对应布局中,展示SnackBar的父布局
Snackbar snackbar = Snackbar.make(coordinatorLayout,"这是一个snackBar",Snackbar.LENGTH_LONG);
snackbar.setAction("确定", new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "onClick: ");
}
});
snackbar.setActionTextColor(Color.BLUE);
snackbar.show();
- SnackBar的父布局为CoordinatorLayout,
- 谷歌还是推荐使用CoorlinatorLayout,这样可以保证SnackBar可以平滑关闭等等。当然此SnackBar的父布局也可以使用其他类型包括RelativeLayout和LinearLayout等,但是此时便不可以右滑动关闭等。
- 官方文档说明
Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets like FloatingActionButton.
布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/ll_remark"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"> </android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
</LinearLayout>