Toast – 简短消息提示工具

TL;DR

为避免 Toast 重叠, 推荐使用如下工具方法弹出 Toast:

private static Toast mToast = null;
public static void showToast(Context context, int resId) {if(mTosat == null){mToast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);} else {mTost.setText(resId);}mToast.show();
}

如果使用多个 Toast 连续调用 show() 方法显示消息,这些消息会成队列式弹出,并且无法取消,出现 Toast 滞留现象。

静态方法

Toast makeText (Context context, int resId, int duration)
Toast makeText (Context context, CharSequence text, int duration)

使用该静态方法可以方便得传入内容和显示时长来获得一个 Toast 对象. 位置默认在底部居中,可另行设置.
除非需要自定义 Toast View , 否则不要用构造方法创建 Toast.

构造方法

创建空的 toast 对象。需要单独设置参数(时长,内容,位置等)

Toast(Context context) 

主要参数: 时长, 位置, 内容

  • 设置显示时长

    void setDuration (int duration)
    /** 有效参数: Toast.LENGTH_SHORT, Toast_LENGTH_LONG */
  • 设置显示位置

    void setGravity (int gravity, int xOffset, int yOffset)/** 如显示在左上角: toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0); */
  • 设置显示内容

    void setText (int resId)
    void setText (CharSequence s)/** 默认的 Toast 包含一个 TextView, 只是简单地显示一条文本.   */

    这里要注意的是与 TextView 的 setText 方法一样, 如果传入 int 型参数, 会将其当做字符串资源 id. 如果要显示数字, 要先转成字符串类型。尤其是设置从服务端获取的数据时要留意一下数据类型。

  • 设置显示样式

自定义 Toast 样式

  1. 首先创建布局文件

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/custom_toast_container"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="8dp"android:background="#DAAA">
    <ImageView android:src="@drawable/droid"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="8dp"/>
    <TextView android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#FFF"/>
    </LinearLayout>

    注意外层 LinearLayout 的 ID 为 “custom_toast_container”, 这是必需值 , 不可更改.

  2. 对 Toast 进行设置

    LayoutInflater inflater = getLayoutInflater();
    // 将布局文件转成 View 对象
    View layout = inflater.inflate(R.layout.custom_toast,(ViewGroup) findViewById(R.id.custom_toast_container));// 获取承载消息的 TextView
    TextView text = (TextView) layout.findViewById(R.id.text);
    text.setText("This is a custom toast");Toast toast = new Toast(getApplicationContext());
    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    toast.setDuration(Toast.LENGTH_LONG);
    // 设置自定义的布局
    toast.setView(layout);
    toast.show();

Android Toast 使用相关推荐

  1. [Android] Toast问题深度剖析(二)

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者: QQ音乐技术团队 题记 Toast 作为 Android 系统中最常用的类之一,由于其方便的api设计和简洁的交互体验,被我们所广泛采用 ...

  2. android toast的使用

    今天,没有什么可以写的,在网上查找资料,发现toast有很多知识点,所以记录一下. Toast Toast是为了给当前视图显示一个浮动的显示块,它永远不会获得焦点.一般用于提示一些不那么引人注目,但是 ...

  3. 使用Kotlin的Android Toast

    Android Toast is a UI widget that pops up on the screen for some time. It's very similar to a notifi ...

  4. Android Toast 设置到屏幕中间,自定义Toast的实现方法,及其说明

    http://blog.csdn.net/wangfayinn/article/details/8065763 Android Toast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. ...

  5. Android Toast cancel和show深入浅出实战

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

  6. 自定义 Android toast 字体大小

    让Android Toast 居中 可以设置 字体大小 Toast toast = Toast.makeText(this, "这是一个简单的自定义Toast", Toast.LE ...

  7. Android Toast 自定义显示时长

    Android Toast 只支持两种时间 LENGTH_SHORT 2 秒,LENGTH_LONG 3.5 秒,但是有场景需要自定义显示时长就会有问题,所以需要自定义实现,下边是自定义的类,通过定时 ...

  8. robotframework + appium 获取android toast

    android toast 获取主要方式是在出现toast的时候查找元素:xpath=//*[contains(@text,'记同步')]  ,该xpath 表示为toast信息含有  "记 ...

  9. qt自定义控件-模拟Android toast提示窗口

    一.前言 好久没写博客了,最近一直写材料,很难受,在家做点小东西,正好遇到了想做的效果,在桌面程序实现Android的toast效果 二.环境 目标机linux,测试机window10 qt5.7 本 ...

  10. Android Toast类

    1. 默认创建 Toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据用户设置的显示时间后自动消失. Toast静态方法makeText(),生成Toast实例,并调用show()方 ...

最新文章

  1. 自然语言处理中的Attention Model:是什么以及为什么[一]
  2. mysql增备脚本--xtrabackup实现
  3. Oracle8的不安全因素及几点说明
  4. JMeter配置元件【HTTP请求默认值】
  5. 两台XP系统电脑用双网卡共享上网操作
  6. HTTP中的POST、GET区别
  7. 拓端tecdat|用R语言中的神经网络预测时间序列:多层感知器和极限学习机
  8. LNMP的运维追踪技巧总结
  9. keil5图标变成白色_图标设计全方位解读
  10. Java 算法 - 递归算法思想
  11. 数据库系统工程师怎么备考?
  12. java毕设项目——图书借阅管理系统(附源码课件)
  13. CSS(定位、淘宝轮播图案例、网页布局总结、元素的显示和隐藏、鼠标经过显示遮罩)
  14. 4.STACEY矩阵及其对应的开发模型、敏捷开发评估方法
  15. python类计算器开发_开发一个简单的python计算器
  16. app常见的专项测试以及面试题
  17. 【论文笔记】MLFF-GAN:A Multilevel Feature Fusion WithGAN for Spatiotemporal Remote Sensing Images
  18. 《了凡四训》全文 + 译文
  19. 深度学习分类基础概念对ACC、PPV、TPR、TNR
  20. android摄像头api

热门文章

  1. 小老弟!听说你在搞Android 10.0 适配,看这篇就妥了!
  2. P2P UDP NAT 原理 穿透
  3. 6to4隧道实验配置
  4. PHP 十六大魔术方法学习
  5. Orcale数据库简介
  6. SOCKS5实现(一)
  7. linux系统日志以及分析
  8. 海康威视IPCamera图像捕获方法:捕获实时流,将实时流解码成YV12,然后转换成RGB
  9. blueprint 实例
  10. 海天蚝油《挑战不可能》实测5G超强传输能力