大家都知道,Android 里的Toast N次点击之后,会弹出N次Toast。并且无法取消,这样就会导致Toast长时间显示,用户还无法关闭的情况。这样的用户体验很不好!
直到看到郭神的 Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?才知道,原来可以通过封装一下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();
}
}
调用的时候就只要
Util.showToast(context, "things happened");
代码并不复杂,但是效果很棒!
顺便提一句,我认为Android的Toast和SnackBar 所能做到的提示效果都不是特别的好
显示Toast时,如果恰巧你的输入法弹出了,你的输入法颜色比较艳丽,那么Toast将会不容易引起注意。
而显示SnackBar的位置为屏幕的最低下,个人觉得也不太能引起用户注意。
希望google大神在新版本能弄一个比较漂亮的提示控件