介绍
Toas是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间之后自动消失,并且不会占用任何屏幕空间。
效果图:

Tips: 可以看到系统默认Toast采用的是队列的方式, 等当前Toast消失后, 下一个Toast才能显示出来;如果多次点击,会浪费时间排着队重复显示,我们可以优化一下默认的Toast,优化代码下面给出。
直接上代码,说明写在代码注释里
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn1:
/*
*使用默认Toast
* 点击几次就会一个接一个的按顺序出现
* 等队列中的Toast处理完,显示Toast的任务才算结束。
*/
Toast.makeText(this, "默认Toast", Toast.LENGTH_SHORT).show();
break;
case R.id.btn2:
/*
*使用优化后的Toast
*只创建一个Toast
*/
ToastUtils.showToast(this,"优化后的Toast");
break;
case R.id.btn3:
/*
* 自定义Toast
* 自定义布局
* 自定义位置
*/
//布局解析器解析自定义布局
View toastView = LayoutInflater.from(this).inflate(R.layout.toast_layout01,null);
// ImageView imageView = toastView.findViewById(R.id.picture);
//创建Toast实列
Toast toast = new Toast(this);
//Toast加载布局toastView
toast.setView(toastView);
//设置位置居中,xy偏移量为0
toast.setGravity(Gravity.CENTER,0,0);
//设置显示时长
toast.setDuration(Toast.LENGTH_SHORT);
//显示Toast
toast.show();
break;
}
}
优化的Toast代码
/**
* create by 星航指挥官
* create on 2020/8/24
* 我为天帝 当镇压世间一切敌
* 遮天
*/
public class ToastUtils {
private static Toast toast;
/**
* 解决Toast点多少就提示多少次的问题
*/
public static void showToast(Context context, String content) {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.P) {
/*
* 如果是Android 9 那么使用原生的Toast 因为这个版本官方自己优化了Toast
* 然而Android 10 又把优化取消了 T-T !
* */
Toast.makeText(context, content, Toast.LENGTH_SHORT).show();
} else {
if (toast == null) {
toast = Toast.makeText(context, content, Toast.LENGTH_SHORT);
} else {
toast.setText(content);
}
toast.show();
}
}
}
kee
本文介绍Android系统中的Toast组件,探讨其默认行为及优化方案。通过代码示例展示如何避免重复显示Toast,提高用户体验。同时,文章还介绍了自定义Toast布局和位置的方法。

被折叠的 条评论
为什么被折叠?



