用户体验之自定义Toast,拿过来直接用(Toast的重复显示)
来源:互联网 发布:mac 系统怎么翻墙 编辑:程序博客网 时间:2024/04/29 14:29
每点击一次Toast按钮,会把点击按钮的消息加入Toast队列(先进先出),如果用户同一时间点击多次,会依次显示Toast队列的消息(退出应用也会显示),严重影响用户体验。
解决方法:
public class ORToast { private static Toast toast; private static Handler handler = new Handler(); private static Runnable r = new Runnable() { public void run() { toast.cancel(); } }; public static void showToast(Context Context, String text, int duration) { handler.removeCallbacks(r);//调用showToast时把之前队列的Toast消息移除
/** * 多次弹框的时候重复cancel()和show()调用效率有些低, * 于是我么借鉴单例模式的思想,每个Toast在显示的时候都会去判断当前有没有Toast在显示, * 如果有就把显示内容替换(使用setText(text),将想替换的文字替换即可) */
if (toast != null) toast.setText(text); else toast = Toast.makeText(Context, text,duration); handler.postDelayed(r, duration);//延迟duration毫秒,防止多次调用后出现太久再消失 toast.show(); } public static void showToast(Context Context, int resId, int duration) { showToast(Context, Context.getResources().getString(resId), duration); }}在代码中只需要
ORToast.showToast(getBaseContext(), "Text", 1000);
有什么更好的方法或理解错的地方,请大家指出,与大家一起进步
0 0
- 用户体验之自定义Toast,拿过来直接用(Toast的重复显示)
- 自定义Toast及解决Toast的重复显示问题
- 自定义toast、toast重复显示、切换界面toast自动消失
- 自定义toast、toast重复显示、切换界面toast自动消失
- 自定义显示的Toast
- Android 弹无虚发之第五弹:来点儿不一样的Toast(自定义Toast,设置Toast显示位置,自定义Toast的复杂布局)
- Toast重复显示的问题
- TOAST:不重复显示Toast
- 自定义Toast样式,友好用户体验。
- Toast显示时间的自定义
- 自定义Toast的显示效果
- 自定义Toast(显示图片)
- 显示全局的Toast 防止toast重复弹出
- Toast重复显示问题解决
- Android进阶之Toast重复显示解决方法
- Android 特殊的单例Toast(防止重复显示)
- 解决Toast重复显示的问题
- Android中的Toast重复显示的问题
- Objective-C 类别使用
- Hive on Spark源码分析(六)—— RemoteSparkJobMonitor与JobHandle
- 防止出现 Capturing 'self' strongly in this block is likely to lead to a retain cycle [duplicate]
- poj 3009 Curling2.0(dfs)
- 初学Hibernate经验
- 用户体验之自定义Toast,拿过来直接用(Toast的重复显示)
- poj 1159Palindrome(dp lcs变形)
- js遍历数组的方法
- colo.xml
- IT工程师怎样预防、治好颈椎腰椎伤肾等职业病
- 利用CSS和DIV的几种布局方法(1)
- Java:函数,类,数组之间的运用
- hadoop快速入门,伪分布式模式安装
- 什么是线程安全和线程不安全