不断学习,做更好的自己!💪
视频号CSDN简书欢迎打开微信,关注我的视频号:程序员朵朵点我点我 前言官网:Snackbar
引入 material 包:
implementation 'com.google.android.material:material:1.2.1'
简述
Snackbar 是一种针对操作的轻量级反馈机制,常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方。它们出现在屏幕所有层的最上方,包括浮动操作按钮。
它们会在超时或者用户在屏幕其他地方触摸之后自动消失。Snackbar 可以在屏幕上滑动关闭。当它们出现时,不会阻碍用户在屏幕上的输入,并且也不支持输入。屏幕上同时最多只能现实一个 Snackbar。
Android 也提供了一种主要用于提示系统消息的胶囊状的提示框 Toast。Toast 同 Snackbar 非常相似,但是 Toast 并不包含操作也不能从屏幕上滑动关闭。
属性Snackbar snackbar = Snackbar.make(coordinatorLayout, "Action 被点击", Snackbar.LENGTH_SHORT);
snackbar.setText("动态文本");//动态设置文本显示内容
snackbar.setActionTextColor(Color.RED);//动态设置Action文本的颜色
snackbar.setDuration(5000);//动态设置显示时间
View snackbarView = snackbar.getView();//获取Snackbar显示的View对象
//获取显示文本View,并设置其显示颜色
((TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text)).setTextColor(Color.BLUE);
//获取Action文本View,并设置其显示颜色
((TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_action)).setTextColor(Color.BLUE);
//设置Snackbar的背景色
snackbarView.setBackgroundColor(Color.GREEN);
//设置Snackbar显示的位置
ViewGroup.LayoutParams params = snackbarView.getLayoutParams();
CoordinatorLayout.LayoutParams layoutParams = new CoordinatorLayout.LayoutParams(params.width, params.height);
layoutParams.gravity = Gravity.CENTER_VERTICAL;//垂直居中
snackbarView.setLayoutParams(layoutParams);
使用
@OnClick(R.id.btn_cancel)
public void click() {
// make()实现简单弹出
// Snackbar.make(mButton,"哈哈,我是Snackbar",Snackbar.LENGTH_SHORT).show();
// setAction()添加按钮
Snackbar.make(mButton, "Snack Bar Text", Snackbar.LENGTH_LONG)
.setAction("Go!", new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TestActivity.class);
startActivity(intent);
}
})
.setActionTextColor(Color.BLUE).show();
}
Snackbar 与 Dialog 和 Toast 的比较
Dialog
模态对话框。也就说,此刻该对话框中的内容获取了焦点,想要操作对话框以外的功能,必须先对该对话框进行响应。
应用场景:对于删除确认、版本更新等重要性提示信息,需要用户做出选择的情况下,使用Dialog。
Toast非模态提示框。也就说提示框的显示并不影响我们对其他地方的操作,Toast无法手动控制隐藏,需要设置Toast的显示时长,一旦显示时间结束,Toast会自动消失。如果多次点击并显示Toast,就会出现Toast重复创建并显示,给用户造成一种Toast长时间不隐藏的幻觉。
应用场景:对于无网络提示、删除成功、发布操作完成等这类不重要的提示性信息,使用Toast;
SnackbarSnackbar和Toast比较相似,但是用途更加广泛,并且它是可以和用户进行交互的。Snackbar使用一个动画效果从屏幕的底部弹出来,过一段时间后也会自动消失。
应用场景:删除操作时,弹出Snackbar用于确认删除操作;消息发送失败时,弹出Snackbar,用于重新发送操作;当然重要的是与MD组件相结合,用户体验效果更佳。