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

/*** 功能描述:自定义toast显示时长*/
public class CustomToast {private Toast mToast;private TimeCount timeCount;private String message;private int gravity;private Context mContext;private Handler mHandler = new Handler();private boolean canceled = true;public CustomToast(Context context, int gravity, String msg) {message = msg;mContext = context;this.gravity = gravity;}/*** 自定义时长、居中显示toast** @param duration*/public void show(int duration) {timeCount = new TimeCount(duration, 1000);if (canceled) {timeCount.start();canceled = false;showUntilCancel();}}/*** 隐藏toast*/public void hide() {if (mToast != null) {mToast.cancel();}if (timeCount != null) {timeCount.cancel();}canceled = true;}private void showUntilCancel() {if (canceled) { //如果已经取消显示,就直接returnreturn;}mToast = ToastUtil.getToast(mContext, message, Toast.LENGTH_LONG, gravity);mToast.setGravity(gravity, 0, 0);mToast.show();mHandler.postDelayed(new Runnable() {@Overridepublic void run() {showUntilCancel();}}, 3500);}/*** 自定义计时器*/private class TimeCount extends CountDownTimer {public TimeCount(long millisInFuture, long countDownInterval) {super(millisInFuture, countDownInterval); //millisInFuture总计时长,countDownInterval时间间隔(一般为1000ms)}@Overridepublic void onTick(long millisUntilFinished) {}@Overridepublic void onFinish() {hide();}}
}

初始化构造函数需要传入显示的消息和显示的位置(上 中 下),然后调用show方法,如果还没到时间想隐藏可以调用hide方法
调用方法如下:

if (customToast != null) customToast.hide();
customToast = new CustomToast(context, Gravity.BOTTOM, title);
customToast.show(duration);

时长可以任意传入,都可以按需求显示出来。

Android Toast 自定义显示时长相关推荐

  1. android toast 自定义时间,Android Toast自定义显示时间

    Toast是Android中使用频率较高的弹窗提示手段,使用起来简单.方便.常规使用方法这里不做说明,继前一篇博客<Android中Toast全屏显示> ,其中抛砖引玉的给出一个简单的实现 ...

  2. Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等

    Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等 目录 Unity 基础 之 在 UGUI 上简单实现VideoPl ...

  3. android toast 自定义时间,android自定义Toast设定显示时间

    开发android的同学可能会抱怨Toast设定显示的时长无效,只能是Toast.LENGTH_LONG 或者Toast.LENGTH_SHORT 之一,为了解决这些办法,有多种实现方式: 1.使用定 ...

  4. android toast居中显示_android Toast 弹出在屏幕中间位置以及自定义Toast

    Toast 我想我们应该使用的都很多,一般我们使用默认设置较多,但是默认设置往往不能满足我们的需求,那我们现在来自定义下: 默认Toast: Toast.makeText(MainActivity.t ...

  5. Android 自定义带图标Toast,工具方法,Toast自定义显示时间

    带图标Toast工具方法1 样式 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:an ...

  6. android toast 一直显示,android中toast无法显示问题

    本文记录两种情况下Android的toast无法显示的问题及提供对应的解决方案 关闭通知权限 在Android系统中将通知栏权限,我们可以发现toast无法展示出来(绝大部分机子,oppo和vivo一 ...

  7. Android跳转动画时长,Android_Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转,需求:Activity(fragment)跳转的时候 - phpStudy...

    Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转 需求:Activity(fragment)跳转的时候当前界面裂开,上下各自拉出手机屏幕,之后跳转到相对应的Activity.整体效果图如下 ...

  8. iPhone苹果手机语音备忘录M4A文件损坏显示时长无法播放修复方法

    使用iPhone手机语音备忘录录了1个小时会议录音,但是手机播放不了,语音备忘录上有显示录音时长 ,但是点播放无响应.将录音导入电脑使用播放器,播放器提示:此文件无法播放.这可能是因为文件类型不受支持 ...

  9. Android 获取 App 累积时长

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:淮左明都 链接:https://www.jianshu.com/p/ec8627fe3fd7 声明:本文已获淮左 ...

最新文章

  1. Linux环境编译安装Mysql以及补装innodb引擎方法
  2. 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
  3. vegas pro 15解决导入的视频和音频有噪声问题,亲测可行
  4. MySQL学习_计算用户支付方式占比_20161104
  5. 教徒计划出品:升级vCenter41到vCenter5
  6. xmarin.android导航栏,Xamarin.Forms中心标题和透明导航栏 - Android
  7. [leetcode]5337. 每个元音包含偶数次的最长子字符串
  8. 第三章 动态规划-基于模型的RL-强化学习理论学习与代码实现(强化学习导论第二版)
  9. ubuntu20.05安装vmware workstation 16,踩坑:GLib does not have GSettings support.
  10. 【eoeAndroid社区索引】android 条形码的知识汇总
  11. python 生成nc文件_如何python写nc文件
  12. Padavan(老毛子)脚本自动切换网关和 DNS 服务器
  13. 四轴飞行器的设计与开发过程
  14. 50 行代码,实现中英文翻译
  15. Spring Data ElasticSearch analyzer 定义 @Filed失效 @Mapping失效 创建索引 无效 解决办法 ElasticsearchRestTemplate
  16. NISP一级题库100题
  17. 自定义ro.build.fingerprint
  18. Wiremock的使用
  19. 战争磨盘十三:重整旗鼓
  20. 120项优化: 超级爬虫Hawk 2.0重磅发布!

热门文章

  1. excel打开文件数字显示E+问题
  2. 常用的Matlab的函数
  3. 【SpringBoot】mybatis 自动生成swagger注解,及普通查询sql
  4. 黄陈晨是我最重要的决定
  5. 金蝶EAS,凭证接口,生成凭证,删除凭证,WebService接口
  6. html磨砂效果,使用css制作磨砂效果
  7. 你了解企业内部的往来款会计分录怎么做吗?
  8. java mina框架实例_Apache Mina框架实践
  9. 计算机保密管理使用情况表,涉密计算机保密管理情况检查表
  10. 转行php自我介绍,PHP面试技巧——如何进行自我介绍?