Android提醒微技巧Dialog、Toast和Snackbar
2016-08-03 21:51
477 查看
http://blog.csdn.net/guolin_blog/article/details/51336415
1.Dialog
2.3系统的Dialog。
我们有没有什么办法在老版本的系统中也使用Material Design风格的Dialog呢?当然有,Google已经充分考虑到了这一点,在appcompat-v7库中也提供了一个AlertDialog类,完整路径是:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setMessage("Dialog content.")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.show();
我们使用这个包中的AlertDialog,就能让对话框在所有的系统版本中都保持一致的风格了
2.Toast
可以看到,这里我快速连续点击了五次按钮,Toast就触发了五次。这样的体验其实是不好的,因为也许用户是手抖了一下多点了几次,导致Toast就长时间关闭不掉了。又或者我们其实已在进行其他操作了,应该弹出新的Toast提示,而上一个Toast却还没显示结束。
因此,最佳的做法是将Toast的调用封装成一个接口,写在一个公共的类当中,如下所示:
public class Util {
private static Toast toast;
public static void showToast(Context context,
String content) {
if (toast == null) {
toast = Toast.makeText(context,
content,
Toast.LENGTH_SHORT);
} else {
toast.setText(content);
}
toast.show();
}
}
3.Snackbar
在使用Snackbar之前,首先需要在app/build.gradle中添加相应的依赖:
compile
'com.android.support:design:23.4.0'
然后就可以使用Snackbar了,它的用法和Toast是比较相似的:
Snackbar.make(view, "data deleted",Snackbar.LENGTH_LONG)
.setAction("Undo", new View.OnClickListener(){
@Override
public void onClick(View v) {
}
})
.show();
这里调用Snackbar的make()方法来创建一个Snackbar对象,make()方法的第一个参数需要传入一个view,只要是当前界面布局的任意一个view都可以,Snackbar会使用这个view来自动查找最外层的布局,用于展示Snackbar。第二个参数就是Snackbar中显示的内容,第三个参数是Snackbar显示的时长。这些和Toast都是类似的。
接着这里又调用了一个setAction()方法来设置一个动作,从而让Snackbar不仅仅是一个提示,而是可以和用户进行交互的。最后调用show()方法让Snackbar显示出来。
现在你有三种方式可以给用户提示信息,Dialog、Toast和Snackbar,下面我们对这三种方式的使用时机做个总结吧。
Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
1.Dialog
2.3系统的Dialog。
我们有没有什么办法在老版本的系统中也使用Material Design风格的Dialog呢?当然有,Google已经充分考虑到了这一点,在appcompat-v7库中也提供了一个AlertDialog类,完整路径是:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setMessage("Dialog content.")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.show();
我们使用这个包中的AlertDialog,就能让对话框在所有的系统版本中都保持一致的风格了
2.Toast
可以看到,这里我快速连续点击了五次按钮,Toast就触发了五次。这样的体验其实是不好的,因为也许用户是手抖了一下多点了几次,导致Toast就长时间关闭不掉了。又或者我们其实已在进行其他操作了,应该弹出新的Toast提示,而上一个Toast却还没显示结束。
因此,最佳的做法是将Toast的调用封装成一个接口,写在一个公共的类当中,如下所示:
public class Util {
private static Toast toast;
public static void showToast(Context context,
String content) {
if (toast == null) {
toast = Toast.makeText(context,
content,
Toast.LENGTH_SHORT);
} else {
toast.setText(content);
}
toast.show();
}
}
3.Snackbar
在使用Snackbar之前,首先需要在app/build.gradle中添加相应的依赖:
compile
'com.android.support:design:23.4.0'
然后就可以使用Snackbar了,它的用法和Toast是比较相似的:
Snackbar.make(view, "data deleted",Snackbar.LENGTH_LONG)
.setAction("Undo", new View.OnClickListener(){
@Override
public void onClick(View v) {
}
})
.show();
这里调用Snackbar的make()方法来创建一个Snackbar对象,make()方法的第一个参数需要传入一个view,只要是当前界面布局的任意一个view都可以,Snackbar会使用这个view来自动查找最外层的布局,用于展示Snackbar。第二个参数就是Snackbar中显示的内容,第三个参数是Snackbar显示的时长。这些和Toast都是类似的。
接着这里又调用了一个setAction()方法来设置一个动作,从而让Snackbar不仅仅是一个提示,而是可以和用户进行交互的。最后调用show()方法让Snackbar显示出来。
4. 总结
现在你有三种方式可以给用户提示信息,Dialog、Toast和Snackbar,下面我们对这三种方式的使用时机做个总结吧。Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
相关文章推荐
- Android提醒微技巧Dialog、Toast和Snackbar
- Android微技巧之Dialog,Toast,Snackbar提醒
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android 自定义Toast、Dialog及Snackbar的使用技巧场景实例和小技巧
- Android提醒微技巧你真的了解Dialog、Toast和Snackbar吗
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒Dialog、Toast和Snackbar ---站在巨人的肩膀上学习总结
- Android提醒:Dialog,Toast,Snackbar
- Android提醒,Dialog、Toast和Snackbar。
- Android 开发之Dialog,Toast,Snackbar提醒
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗? 转载出处:http://blog.csdn.net/guolin_blog/article/details/
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?
- Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?