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

  • 相关阅读:
    java包装类的缓存机制(转)
    分布式事务的思考(转)
    分布式事务框架介绍与使用案例
    java 内部类、匿名内部类
    spring cloud应用
    Oralce学习笔记(六)
    部署CentOS虚拟机集群
    商品详情页系统架构
    Oracle学习笔记(五)
    hystrix完成对redis访问的资源隔离
  • 原文地址:https://www.cnblogs.com/yangdd/p/13363240.html
Copyright © 2020-2023  润新知