zoukankan      html  css  js  c++  java
  • 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不会出现排队的现象。

  • 相关阅读:
    [Multimedia] 下载 m3u8 格式视频
    [Multimedia] 合并两个 MP4 文件
    [Multimedia] FLV 相关分析工具
    [Android] 从 logcat 日志中获取设备的 mac 地址信息
    [Android Tips] 33. Lottie 在 RecyclerView onBindViewHolder 中 playAnimation 不生效
    [Multimedia] 旋转 MP4 视频方向
    [Jenkins] Jenkins changes 显示 git log 乱码解决
    [Jenkins] Jenkins 时区设置
    [Gradle] 解决高德 jar 包打包到 aar 后 jar 包中的 assets 内容丢失
    [Gradle] 发布 library 到本地 maven 仓库
  • 原文地址:https://www.cnblogs.com/yangdd/p/13363240.html
Copyright © 2011-2022 走看看