github地址 点击打开
简介
官方推荐使用SnackBar代替Toast
基本用法: (和Toast很类似)
Snackbar.make(view, "提示内容", Snackbar.LENGTH_LONG).show();
注意:
第一个数view,任何view都可以,但官方推荐CoordinatorLayout,好处有两个:
- 可以右滑删除
- SnackBar弹出时,会移动一些UI元素SnackBar会一个接一个地显示,不会同时显示多个
给右侧添加Action
即右侧添加按钮和点击事件
Snackbar.make(view, "导航图标", Snackbar.LENGTH_LONG).setAction("关闭哦", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}).show();
设置颜色
Snackbar snackbar=Snackbar.make(view,"提示",Snackbar.LENGTH_LONG);
// 设置右侧Action按钮颜色
snackbar.setActionTextColor(Color.RED);
// 设置提示框背景色
snackbar.getView().setBackgroundColor(Color.BLUE);
snackbar.show();
自定义视图
View snackbarview = snackbar.getView();//获取snackbar的View(其实就是SnackbarLayout)
Snackbar.SnackbarLayout snackbarLayout=(Snackbar.SnackbarLayout)snackbarview;//将获取的View转换成SnackbarLayout
View add_view = LayoutInflater.from(snackbarview.getContext()).inflate(layoutId,null);//加载布局文件新建View
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);//设置新建布局参数
p.gravity= Gravity.CENTER_VERTICAL;//设置新建布局在Snackbar内垂直居中显示
snackbarLayout.addView(add_view,index,p);//将新建布局添加进snackbarLayout相应位置