Android开发笔记(十八)——Toast

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_toasttv_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不会出现排队的现象。

原文地址:https://www.cnblogs.com/yangdd/p/13363240.html