加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

Android Toast 显示时间问题的分析

发布时间:2021-11-21 17:44:32 所属栏目:教程 来源:互联网
导读:我想,看到这篇文章的你对Toast并不陌生,可以这样说,Toast的作用就是提示用户。一般为了到达更好地用户体验效果,我们可以自定义Toast的显示效果,包括样式、显示时间等。这里我只对Toast的显示时间问题与大家分享一下我的经验。 我们知道Toast的默认显示

我想,看到这篇文章的你对Toast并不陌生,可以这样说,Toast的作用就是提示用户。一般为了到达更好地用户体验效果,我们可以自定义Toast的显示效果,包括样式、显示时间等。这里我只对Toast的显示时间问题与大家分享一下我的经验。
 
我们知道Toast的默认显示时间有两个,分别为Toast.LENGTH_SHORT和Toast.LENGTH_LONG,当然我们也可以根据需要自定义Toast显示时间的长短,这个问题不是本文的重点,在这里不做介绍。下面开始我们的重点。使用过Toast的你,也许与我一样也遇到过这样的问题:我们在几个Button的点击事件中都添加Toast提醒消息,当逐个点击这些Button后,Toast消息会叠加出现,持续一个相对长的时间,并且当我们关闭此应用时,Toast消息还在显示。出现这种情况是因为每次Toast提示的时间叠加的结果,比如,第一个Toast出现的时间为1s,那么第二个就要等待1s后才能出现,这样就会造成时间的累加,致使显示时间增加。显然我们在做应用时并不希望出现此种情况,那么这里给出我的用过的一个方法。如果我们的应用使用Toast频繁,建议对此单独建个类以使代码不至于那么冗杂,我们用起来也方便。
 
ToastShow.class:
 
public class ToastShow {
 private Context context;
 private Toast toast = null;
 public ToastShow(Context context) {
  this.context = context;
 }
 public void toastShow(String text) {
  if(toast == null)
  {
   toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
  }
  else {
   toast.setText(text);
  }
  toast.show();
 }
}
 
使用这段代码用于显示Toast就不会出现时间地叠加,下面分析一下。个人认为只是一个Toast在不停的显示,只是其内容(也就是出现的提示消息)不同,当Toast=null时,出现一个Toast,如果这个Toast还没有消失时就要出现第二个,那么只是使用其setText()方法改变了内容,文档对setText()方法地解释是:
 
Update the text in a Toast that was previously created using one of the makeText() methods.
 
也就是:更新之前创建的一个使用makeText()方法的Toast里的文本。看到这也许你就明白了。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读