Toast类实现消息提示框的方式有两种:

  1. 使用静态方法makeText()方法
    以下面那个为例吧,第一个参数是一个上下文对象,第二个参数是要显示的数据,第三个参数是要显示数据的时长。

我们来看看他低层是怎么实现的:

public static Toast makeText(Context context, CharSequence text, @Duration int duration) {Toast result = new Toast(context);LayoutInflater inflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);tv.setText(text);result.mNextView = v;result.mDuration = duration;return result;}

首先是将布局文件实例化成view对象,在来看看这个com.android.internal.R.layout.transient_notification文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="?android:attr/toastFrameBackground"><TextViewandroid:id="@android:id/message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:layout_gravity="center_horizontal"android:textAppearance="@style/TextAppearance.Toast"android:textColor="@color/bright_foreground_dark"android:shadowColor="#BB000000"android:shadowRadius="2.75"/></LinearLayout>

我的理解就是Toast类就是在低层调用了一个事先写好的只有一个TextView的xml文件。我们只需要在调用makeText时输入相应的数据,就可以直接用了。

  1. 我们在来看第二种方法:直接实例化一个新的Toast对象。
    Toast toast=new Toast(MainActivity.this);
    Toast类的一些主要方法:

setText():显示的内容,支持字符串和字符串资源ID

setGravity():这个是显示的对齐方式,后面两个参数是针对前面对齐方式的x/y偏移量。

setMargin():margin,也就是外边距。比如我们通过Gravity设置显示在左上角,然后设置这两个值为0.5f,则Toast的左上角会现实在屏幕的中央

setView():设置显示内容视图,自定义和他的关系密不可分。

要实现自定的toast很简单,首先先自定义一个xml文件,你想让他显示什么就怎么写。在将这个xml文件用View.inflate方法解析成view类型的,然后直接通过setView()设置就可以了。如:
xml文件:
实现:

效果:

Toast类实现消息提示框相关推荐

  1. Toast 消息提示框

    Toast(吐丝框) 1.1 Toast是Android中的一种简易的消息提示框 1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象. 第一个参数:当前的上 ...

  2. flutter Toast消息提示框

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 本文章将讲述: 1.在 flutter 跨平台开发中,使用 Dart 实现 Toast 消息提示框效果 2.Overl ...

  3. 简易消息提示框Toast和通知的使用

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) Android中的Toast是一种简易的消息提示框.和Dialog不一样的是,Toast是没有焦点的,toas ...

  4. Winform的消息提示框帮助类

    一.Winform的消息提示框帮助类初衷 通常在C#的Winform项目开发中,我们也会经常需要使用提示框用于用户操作的提示确认,起到一个确认,警示的作用,由于这也是一个十分常见的功能,因此该帮助类就 ...

  5. Android消息提示框

    Toast(吐丝框) 1.1 Toast是Android中的一种简易的消息提示框 1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象. Toast toas ...

  6. html如何设置提示收到消息,从零开始实现一个消息提示框

    引言 消息提示框在实际应用场景当中比较常见,最常用的就是element ui的消息提示框,我们通常都是直接使用它们,但是我们有没有尝试过去探究其实现原理,并自己动手实现呢?为了提升我们的个人能力和竞争 ...

  7. uniapp 消息提示框

    uni.showToast(OBJECT) 显示消息提示框. OBJECT参数说明 参数 类型 必填 说明 平台差异说明 title String 是 提示的内容,长度与 icon 取值有关.   i ...

  8. vue实现消息提示框

    我们常常看到很多vue生态下的ui框架的消息提示框,在页面切换的时候依然停留在页面,我们知道vue这种单页面渐进式框架,所有的操作和元素都是挂载在一个节点上的,当路由变化是整个节点下的dom元素也在重 ...

  9. java中的消息提示框

    2018/04/07 20:18:00 提到消息提示框必须提到的一个类是:javax.swing.JOptionPane 使用示例: JOptionPane.showMessageDialog(nul ...

最新文章

  1. 神策数据保险行业解决方案,正式上线官网!
  2. 一种绕开反病毒引擎的方法
  3. Android热修复之 - 收集崩溃信息上传服务器
  4. haproxy配置参数详解
  5. React开发(189):ant design textarea允许清除allowClear
  6. SQLServer中的死锁的介绍
  7. 【英语学习】【WOTD】senescence 释义/词源/示例
  8. HDFS教程(02)- HDFS命令汇总
  9. 作为一名菜鸟的学习分享
  10. 测试电脑整机功耗软件,有什么好的测电脑整机功耗的软件吗?
  11. python mysql library,python调用mysql报错解决方案
  12. Android 选择图片、上传图片之Matisse
  13. 互联网医疗十大公司排名
  14. stm32 KEIL AC6 优化0程序不运行问题解决
  15. hbase 使用lzo_hbase 使用LZO笔记
  16. 读 S. Meyers 之《Effective C++:改善程序与设计的55个具体做法:第3版》
  17. 记canvas画笔笔迹的多次优化过程
  18. oracle第五章多表连接习题答案(理解+剖析)
  19. H5页面判断安卓苹果
  20. 2023美赛数学建模思路 - 案例:线性回归

热门文章

  1. 关于串联匹配电阻其作用
  2. SQL基础培训13-索引和优化
  3. CSU2020期中测试模拟题1 问题 B: 小帅要缴税
  4. Dubbo之——Dubbo服务集群
  5. AJ1变色龙79.9/阿迪39.9/二裂酵母套盒39.9/有情洗发水9.9/
  6. 内连接、外连接、全连接图示语法
  7. hey 安装_如何使用“ Hey Siri”在Mac上启动Siri
  8. 谈一谈对新技术的态度
  9. sqoop使用hcatalog抽取数据异常
  10. J-Flash 读取Flash数据