getActivity / Toaster

Android 吐司框架,专治 Toast 各种疑难杂症
Apache License 2.0
3.2k stars 404 forks source link

关于toast显示的一个问题 #46

Closed 211885646 closed 4 years ago

211885646 commented 4 years ago

这个库挺好的,目前来说问题最少的一个,但是有个地方让我很纠结,就是连续弹toast 会导致后面的不显示,一定要等前一个toast显示完了消失了过一会才会显示新的toast 能否开放成新的toast内容覆盖已经显示的toast内容 并且重置显示时间?比如说我for循环显示100次toast,只会弹一次,内容会从0更新到99 在更新到99以后才开始算显示时间

getActivity commented 4 years ago

ToastUtils 采用的方式是将 Toast 存为单例对象,我之前也做过一定的尝试,无法做到像 Toast.make 一样的效果,因为它是通过不断生成新的实例来达到覆盖前一个显示的效果。由于考虑到多个 Toast 同时显示的概率比较小,所以放弃了 Toast 的即时性,从而换取内存和性能层面上的优化。

211885646 commented 4 years ago

因为业务场景中的登录场景 用户点击登录后提示他密码或者账号错误,如果点的块了 会只显示一次 第二次显示要等到第一个消失后再延迟下才会显示出来,导致用户在2个toast切换的中途的点击操作是没有反馈的,这只是一个例子 还有很多场景都这样,还是希望作者大大能考虑加进来,或者告诉我怎么改也好,嘿嘿我下载了源码,目前已知修改消息队列长度能保证消息不丢失了,但是消息反馈的时机和用户操作的时机对不上 还是不晓得该怎么改

getActivity commented 4 years ago

你可以使用 ToastUtils.setToastHandler() 来改变 Toast 显示的策略