★★★ 从3.0.0版本开始,默认的依赖引用方式引用的是androidx版本,support版本也会同步更新。
★★★ support版本的源码单独分离成库,详见smart-show-support
★★★ 详细的API文档请查看wiki。
★★★ 关注技术公众号,随时获知库的更新及其他优质技术文章。
- 优雅封装,简化调用
- 处理系统bug等,如Android 7.1系统关于Toast的BadTokenException
- 解决已知的UI性能缺陷,提高用户体验,如Toast重复弹跳等,关闭通知权限后Toast不显示
- 对不同系统版本及厂商设备进行适配
- 合理的复用策略,节约内存开销的同时及时解除引用以便被垃圾回收器回收
- 根据实际开发中的常见需求,进行功能扩展
回到模块导航
如果你对实现感兴趣,请参考我的CSDN博客:
- 2.x 版本 https://blog.csdn.net/jungle_pig/article/details/83959662
- 1.x 版本 https://blog.csdn.net/jungle_pig/article/details/78568493
回到模块导航
为使SmartShow库更加健壮,如果您在使用过程中发现任何问题,请联系我,我会立即跟进修复和维护。感谢您的支持!
作者:朱志强
微信:w361281607
邮箱:coder_zzq@163.com
技术公众号:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- 第一种方式,引入所有模块
// for androidx
implementation ('com.github.the-pig-of-jungle.smart-show:all:3.0.2')
//如果会使用到SmartSnackbar模块,需添加material库,such as 1.1.0-alpha09
implementation 'com.google.android.material:material:x.y.z'
//for support
implementation ('com.github.the-pig-of-jungle.smart-show-support:all:3.0.2')
//如果会使用到SmartSnackbar模块,需添加design库
implementation 'com.android.support:design:x.y.z'
- 第二种方式,自由引入各个模块
最好保证不同模块的版本号一致,以便其内部依赖的基本库版本相同。
//smart toast for androidx
implementation 'com.github.the-pig-of-jungle.smart-show:toast:3.0.2'
//smart toast for support
implementation 'com.github.the-pig-of-jungle.smart-show-support:toast:3.0.2'
//smart dialog for androidx
implementation 'com.github.the-pig-of-jungle.smart-show:dialog:3.0.2'
// smart dialog for support
implementation 'com.github.the-pig-of-jungle.smart-show-support:dialog:3.0.2'
//smart topbar for androidx
implementation('com.github.the-pig-of-jungle.smart-show:topbar:3.0.2')
// smart topbar for support
implementation('com.github.the-pig-of-jungle.smart-show-support:topbar:3.0.2')
//smart snackbar for androidx
implementation('com.github.the-pig-of-jungle.smart-show:snackbar:3.0.2')
//添加material依赖库,such as 1.1.0-alpha09
implementation 'com.google.android.material:material:x.y.z'
// smart snackbar for support
implementation('com.github.the-pig-of-jungle.smart-show-support:snackbar:3.0.2')
//添加与你项目匹配的design依赖库的相应版本
implementation 'com.android.support:design:x.y.z'
SmartShow.init(this);
- 使用application context,而不是activity,避免因activity生命周期问题引起的各种问题
- 复用Toast实例,当Toast正在显示时,多次触发内容和位置均未改变的Toast,不会重复弹出;下一个Toast不会等到上一个Toast的Duration耗尽才弹出
- 解决传统复用模式的功能缺陷,如正在显示一个内容为"A"的Toast,此时再弹出内容为"B"的Toast时,文本虽改变,但没有弹出效果;如果复用的Toast正在显示,改变其Gravity以改变显示位置会无效,直到消失后再次显示才生效
- 可修改Toast默认布局的风格,如背景颜色,文字大小和颜色等
- 可为Toast设置自定义布局
- 完美解决Android 7.1的系统bug——Toast BadTokenException
- 完美解决应用关闭通知权限后Toast不显示问题
- 可配置离开当前页面(退出当前activity或进入新的activity),立即消失正在显示的Toast
- 结合主流app消息提示的效果,提供info、success、error、warning、complete、forbid、wait、fail 8 种类型的Toast
详细文档请参阅wiki:
回到模块导航
默认样式:设置背景色:
- SmartTopbar在功能以及使用上很像一个顶部的Snackbar
- 当Topbar正在显示,多次触发时,若msg和actionTex均未改变,则不会重复弹出,否则有弹出效果
- 可修改布局风格,如背景颜色,文字大小和颜色等
- 可配置离开当前Activity时,立即消失正在显示的Topbar。如,在Activity A 上显示了一个Indefinite Topbar,并且用户没有 点击响应,启动activity B,然后再返回A,原来的Topbar已自动消失
- 可通过手势右滑隐藏Topbar
详细文档请参阅wiki:
- 解决因activity、fragment生命周期导致的BadTokenException、NullPointException等问题
- 提供主流APP中使用的message、input、list、loading等对话框
SmartDialog并不是android.app.Dialog的子类,只是个包装器,它内部持有一个真正的Dialog,用来显示。SmartDialog负责处理当Activity、Fragment
生命周期异常时,取消创建或显示所持Dialog。
详细文档请参阅wiki:
-
预定义的SmartDialog实现
-
自定义
- 复用Snackbar实例,当Snackbar正在显示,多次触发时,若msg和actionTex均未改变,则不会重复弹出,否则会有弹出效果
- 可修改布局风格,如背景颜色,文字大小和颜色等
- 可配置离开当前Activity时,立即消失正在显示的Snackbar。如,在Activity A 上显示了一个Indefinite Snackbar,并且用户没有点击响应,启动activity B,然后再返回A,原来的Snackbar已自动消失
详细文档请参阅wiki: