• Toaster - Android 吐司框架,专治 Toast 各种疑难杂症


    官网

    https://github.com/getActivity/Toaster

    这可能是性能优、使用简单,支持自定义,不需要通知栏权限的吐司

    • 想了解实现原理的可以点击此链接查看:Toaster 源码

    集成步骤

    • 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入
    1. allprojects {
    2. repositories {
    3. // JitPack 远程仓库:https://jitpack.io
    4. maven { url 'https://jitpack.io' }
    5. }
    6. }
    • 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入
    1. dependencyResolutionManagement {
    2. repositories {
    3. // JitPack 远程仓库:https://jitpack.io
    4. maven { url 'https://jitpack.io' }
    5. }
    • 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件中加入远程依赖
    1. android {
    2. // 支持 JDK 1.8
    3. compileOptions {
    4. targetCompatibility JavaVersion.VERSION_1_8
    5. sourceCompatibility JavaVersion.VERSION_1_8
    6. }
    7. }
    8. dependencies {
    9. // 吐司框架:https://github.com/getActivity/Toaster
    10. implementation 'com.github.getActivity:Toaster:12.0'
    11. }

    初始化框架

    1. public class XxxApplication extends Application {
    2. @Override
    3. public void onCreate() {
    4. super.onCreate();
    5. // 初始化 Toast 框架
    6. Toaster.init(this);
    7. }
    8. }

    框架 API 介绍

    1. // 显示 Toast
    2. Toaster.show(CharSequence text);
    3. Toaster.show(int id);
    4. Toaster.show(Object object);
    5. // debug 模式下显示 Toast
    6. Toaster.debugShow(CharSequence text);
    7. Toaster.debugShow(int id);
    8. Toaster.debugShow(Object object);
    9. // 延迟显示 Toast
    10. Toaster.delayedShow(CharSequence text, long delayMillis);
    11. Toaster.delayedShow(int id, long delayMillis);
    12. Toaster.delayedShow(Object object, long delayMillis);
    13. // 显示短 Toast
    14. Toaster.showShort(CharSequence text);
    15. Toaster.showShort(int id);
    16. Toaster.showShort(Object object);
    17. // 显示长 Toast
    18. Toaster.showLong(CharSequence text);
    19. Toaster.showLong(int id);
    20. Toaster.showLong(Object object);
    21. // 自定义显示 Toast
    22. Toaster.show(ToastParams params);
    23. // 取消 Toast
    24. Toaster.cancel();
    25. // 设置 Toast 布局(全局生效)
    26. Toaster.setView(int id);
    27. // 设置 Toast 样式(全局生效)
    28. Toaster.setStyle(IToastStyle style);
    29. // 获取 Toast 样式
    30. Toaster.getStyle()
    31. // 判断当前框架是否已经初始化
    32. Toaster.isInit();
    33. // 设置 Toast 策略(全局生效)
    34. Toaster.setStrategy(IToastStrategy strategy);
    35. // 获取 Toast 策略
    36. Toaster.getStrategy();
    37. // 设置 Toast 重心和偏移
    38. Toaster.setGravity(int gravity);
    39. Toaster.setGravity(int gravity, int xOffset, int yOffset);
    40. // 设置 Toast 拦截器(全局生效)
    41. Toaster.setInterceptor(IToastInterceptor interceptor);
    42. // 获取 Toast 拦截器
    43. Toaster.getInterceptor();

    框架亮点

    • 一马当先:首款适配 Android 11 的吐司框架,开发者无需关心适配过程
    • 无需权限:不管有没有授予通知栏权限都不影响吐司的弹出
    • 兼容性强:处理原生 Toast 在 Android 7.1 产生崩溃的历史遗留问题
    • 功能强大:不分主次线程都可以弹出Toast,自动识别资源 id 和 int 类型
    • 使用简单:只需传入文本,会自动根据文本长度决定吐司显示的时长
    • 性能最佳:使用懒加载模式,只在显示时创建 Toast,不占用 Application 启动时间
    • 体验最佳:显示下一个 Toast 会取消上一个 Toast 的显示,真正做到即显即示
    • 全局统一:可以在 Application 中初始化 Toast 样式,达到一劳永逸的效果

    关于通知栏权限

  • 相关阅读:
    java计算机毕业设计高校共享机房管理系统的设计与实现源码+系统+lw文档+mysql数据库+部署
    【我不熟悉的css】10- 一行字号不同的文字底部对齐,vertical-align的使用,字体行高line-height使用的注意事项
    CF1535F String Distance
    云原生爱好者周刊:延迟加载任意 OCI 镜像 | 2022-09-13
    无人机顶会顶刊2023
    day062:平衡二叉树——左旋、右旋
    给 SAP Commerce Cloud Storefront 设置 endpoint
    常用redis-lua脚本
    vue项目中页面跳转传参的方法
    SQLServer下载与安装
  • 原文地址:https://blog.csdn.net/ZhaiKun68/article/details/133171752