码云地址:Gitee
已投入公司项目多时,没有任何毛病,可胜任任何需求,点击此处下载Demo
想了解实现原理的可以点击此链接查看:ToastUtils 源码
本框架意在解决一些常见需求,如果是有一些极端的需求推荐使用 XToast
dependencies {
implementation 'com.hjq:toast:8.8'
}
// 在 Application 中初始化
ToastUtils.init(this);
ToastUtils.show("我是吐司");
// 设置Toast布局
ToastUtils.setView();
// 设置吐司重心
ToastUtils.setGravity();
// 获取Toast对象
ToastUtils.getToast();
如果对Toast的默认样式不满意,可以在Application初始化样式,具体可参考ToastBlackStyle类的实现
ToastUtils.initStyle(new IToastStyle());
-
无需权限:不管有没有授予通知栏权限都不影响吐司的弹出
-
兼容性强:处理原生 Toast 在 Android 7.1 产生崩溃的历史遗留问题
-
功能强大:不分主次线程都可以弹出Toast,自动区分资源 id 和 int 类型
-
使用简单:只需传入文本,会自动根据文本长度决定吐司显示的时长
-
性能最佳:单例吐司,整个 Toast 只有一个 TextView,并且通过代码创建
-
体验最优:限制 Toast 短时间内弹出的次数,避免频繁弹出造成不良的用户体验
-
支持多种样式:默认为黑色样式,夜间模式可使用白色样式,还有仿 QQ 吐司样式
-
支持自定义样式:吐司(背景、圆角、重心、偏移),文字(大小、颜色、边距)
-
支持自定义扩展:支持获取 ToastUtils 中的 Toast 对象,支持重新自定义 Toast 布局
-
支持全局配置样式:可以在 Application 中初始化 Toast 样式,达到一劳永逸的效果
-
已适配 Android R:Android 11 之后不能弹出自定义样式的 Toast,框架针对这种情况进行了适配
本框架已经完美解决这个问题(禁用通知栏权限后需要重启应用、重启应用、重启应用才能后生效,请以Demo测试为主)
在开启 APP 的同时关闭通知栏权限的情况极少(测试人员才会这么做),所以仅在 Application 初始化的时候才对没有通知栏权限的情况进行判断和兼容
具体解决方案可见:Toast通知栏权限填坑指南
右击项目,Replace in path,勾选 Regex 选项
Toast\.makeText\([^,]+,\s*(.+{1}),\s*[^,]+\)\.show\(\)
替换使用
ToastUtils.show($1)
包名替换
import android.widget.Toast
import com.hjq.toast.ToastUtils
再全局搜索,手动更换一些没有替换成功的
Toast.makeText
-
安卓架构:AndroidProject
-
网络框架:EasyHttp
-
日志框架:Logcat
-
权限框架:XXPermissions
-
标题栏框架:TitleBar
-
国际化框架:MultiLanguages
-
悬浮窗框架:XToast
Copyright 2018 Huang JinQun
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.