Toast是一个消息提示组件
Toast
是Android系统中一种消息提示框类型,是一个View 视图,快速的为用户显示少量的信息。Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,无法被点击,不影响用户的输入等操作,主要用于 一些帮助 / 提示。- Toast 最常见的创建方式是使用静态方法
Toast.makeText
。
Toast.makeText(getApplicationContext(),"Toast",Toast.LENGTH_LONG).show();
Toast.LENGTH_SHORT大概显示时间为1秒,
Toast.LENGTH_LONG大概显示时间为3秒
设置显示的位置
居中的显示:
Toast toastCenter = Toast.makeText(getApplicationContext(),"居中Toast",Toast.LENGTH_LONG);
toastCenter.setGravity(Gravity.CENTER,0,0);
toastCenter.show();
自定义显示内容(如添加一张图片)
带图片效果:
这里先在 layout_toast.xml
中设置了一个名称为 iv_toast
和 tv_toast
的ImageView和TextView
Toast toastCustom = new Toast(getApplicationContext());
LayoutInflater inflater = LayoutInflater.from(ToastActivity.this);
View view = inflater.inflate(R.layout.layout_toast, null);
ImageView imageView = view.findViewById(R.id.iv_toast);
TextView textView = view.findViewById(R.id.tv_toast);
imageView.setImageResource(R.drawable.xiaolian);
textView.setText("自定义Toast");
toastCustom.setView(view);
toastCustom.setDuration(Toast.LENGTH_LONG);
toastCustom.show();
目前为止的效果:
这里连着点击的时候,Toast显示会排队展示,但是实际开发过程中希望后一个Toast把前一个抵消掉,不管点击多少下,以最后一次点击为准。
这里可以封装一个简单的类
简单封装
package com.example.myapplication.util;
import android.content.Context;
import android.widget.Toast;
public class ToastUtil {
public static Toast mToast;
public static void showMsg(Context context,String msg){
if (mToast==null) {
mToast=Toast.makeText(context,msg,Toast.LENGTH_LONG);
}else {
mToast.setText(msg);
}
mToast.show();
}
}
之后在想要使用Toast的时候就可以直接调用 ToastUtil
中的 showMsg
函数即可。如:
ToastUtil.showMsg(getApplicationContext(),"包装过的Toast");
可以看到不管点击多少下,Toast不会出现排队的现象。