Toast类实现消息提示框
Toast类实现消息提示框的方式有两种:
- 使用静态方法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时输入相应的数据,就可以直接用了。
- 我们在来看第二种方法:直接实例化一个新的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类实现消息提示框相关推荐
- Toast 消息提示框
Toast(吐丝框) 1.1 Toast是Android中的一种简易的消息提示框 1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象. 第一个参数:当前的上 ...
- flutter Toast消息提示框
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 本文章将讲述: 1.在 flutter 跨平台开发中,使用 Dart 实现 Toast 消息提示框效果 2.Overl ...
- 简易消息提示框Toast和通知的使用
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) Android中的Toast是一种简易的消息提示框.和Dialog不一样的是,Toast是没有焦点的,toas ...
- Winform的消息提示框帮助类
一.Winform的消息提示框帮助类初衷 通常在C#的Winform项目开发中,我们也会经常需要使用提示框用于用户操作的提示确认,起到一个确认,警示的作用,由于这也是一个十分常见的功能,因此该帮助类就 ...
- Android消息提示框
Toast(吐丝框) 1.1 Toast是Android中的一种简易的消息提示框 1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象. Toast toas ...
- html如何设置提示收到消息,从零开始实现一个消息提示框
引言 消息提示框在实际应用场景当中比较常见,最常用的就是element ui的消息提示框,我们通常都是直接使用它们,但是我们有没有尝试过去探究其实现原理,并自己动手实现呢?为了提升我们的个人能力和竞争 ...
- uniapp 消息提示框
uni.showToast(OBJECT) 显示消息提示框. OBJECT参数说明 参数 类型 必填 说明 平台差异说明 title String 是 提示的内容,长度与 icon 取值有关. i ...
- vue实现消息提示框
我们常常看到很多vue生态下的ui框架的消息提示框,在页面切换的时候依然停留在页面,我们知道vue这种单页面渐进式框架,所有的操作和元素都是挂载在一个节点上的,当路由变化是整个节点下的dom元素也在重 ...
- java中的消息提示框
2018/04/07 20:18:00 提到消息提示框必须提到的一个类是:javax.swing.JOptionPane 使用示例: JOptionPane.showMessageDialog(nul ...
最新文章
- 神策数据保险行业解决方案,正式上线官网!
- 一种绕开反病毒引擎的方法
- Android热修复之 - 收集崩溃信息上传服务器
- haproxy配置参数详解
- React开发(189):ant design textarea允许清除allowClear
- SQLServer中的死锁的介绍
- 【英语学习】【WOTD】senescence 释义/词源/示例
- HDFS教程(02)- HDFS命令汇总
- 作为一名菜鸟的学习分享
- 测试电脑整机功耗软件,有什么好的测电脑整机功耗的软件吗?
- python mysql library,python调用mysql报错解决方案
- Android 选择图片、上传图片之Matisse
- 互联网医疗十大公司排名
- stm32 KEIL AC6 优化0程序不运行问题解决
- hbase 使用lzo_hbase 使用LZO笔记
- 读 S. Meyers 之《Effective C++:改善程序与设计的55个具体做法:第3版》
- 记canvas画笔笔迹的多次优化过程
- oracle第五章多表连接习题答案(理解+剖析)
- H5页面判断安卓苹果
- 2023美赛数学建模思路 - 案例:线性回归