Home

Awesome

English Doc

吐司框架

集成步骤

allprojects {
    repositories {
        // JitPack 远程仓库:https://jitpack.io
        maven { url 'https://jitpack.io' }
    }
}
dependencyResolutionManagement {
    repositories {
        // JitPack 远程仓库:https://jitpack.io
        maven { url 'https://jitpack.io' }
    }
}
android {
    // 支持 JDK 1.8
    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    // 吐司框架:https://github.com/getActivity/Toaster
    implementation 'com.github.getActivity:Toaster:12.6'
}

初始化框架

public class XxxApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // 初始化 Toast 框架
        Toaster.init(this);
    }
}

框架 API 介绍

// 显示 Toast
Toaster.show(CharSequence text);
Toaster.show(int id);
Toaster.show(Object object);

// debug 模式下显示 Toast
Toaster.debugShow(CharSequence text);
Toaster.debugShow(int id);
Toaster.debugShow(Object object);

// 延迟显示 Toast
Toaster.delayedShow(CharSequence text, long delayMillis);
Toaster.delayedShow(int id, long delayMillis);
Toaster.delayedShow(Object object, long delayMillis);

// 显示短 Toast
Toaster.showShort(CharSequence text);
Toaster.showShort(int id);
Toaster.showShort(Object object);

// 显示长 Toast
Toaster.showLong(CharSequence text);
Toaster.showLong(int id);
Toaster.showLong(Object object);

// 自定义显示 Toast
Toaster.show(ToastParams params);

// 取消 Toast
Toaster.cancel();

// 设置 Toast 布局(全局生效)
Toaster.setView(int id);

// 设置 Toast 样式(全局生效)
Toaster.setStyle(IToastStyle<?> style);
// 获取 Toast 样式
Toaster.getStyle()

// 判断当前框架是否已经初始化
Toaster.isInit();

// 设置 Toast 策略(全局生效)
Toaster.setStrategy(IToastStrategy strategy);
// 获取 Toast 策略
Toaster.getStrategy();

// 设置 Toast 重心和偏移
Toaster.setGravity(int gravity);
Toaster.setGravity(int gravity, int xOffset, int yOffset);

// 设置 Toast 拦截器(全局生效)
Toaster.setInterceptor(IToastInterceptor interceptor);
// 获取 Toast 拦截器
Toaster.getInterceptor();

框架混淆规则

-keep class com.hjq.toast.** {*;}

常见疑问请点击此处查看

不同 Toast 框架之间的对比

功能或细节ToasterAndroidUtilCode-ToastUtilsToasty
对应版本12.61.30.61.5.0
issues 数
框架体积32 KB500 KB50 KB
框架维护状态维护中停止维护停止维护
调用代码定位
支持在子线程中调用显示
支持设置局部 Toast 样式
支持设置全局 Toast 样式
支持 Toast 即显即示
支持 Toast 排队显示
支持 Toast 延迟显示
处理 Toast 在 Android 7.1 崩溃的问题
兼容通知栏权限关闭后 Toast 显示不出来的问题
适配 Android 11 不能在后台显示 Toast 的问题

调用代码定位功能介绍

Toast 在 Android 7.1 崩溃的问题介绍

Toast 在 Android 7.1 崩溃排查及修复

通知栏权限关闭后 Toast 显示不出来的问题介绍

Toast通知栏权限填坑指南

Android 11 不能在后台显示 Toast 的问题介绍

框架亮点

如何替换项目中已有的原生 Toast

Toast\.makeText\([^,]+,\s*(.+),\s*[^,]+\)\.show\(\)
Toaster.show($1)
import android.widget.Toast
import com.hjq.toast.Toaster
Toast.makeText
new Toast

作者的其他开源项目

微信公众号:Android轮子哥

Android 技术 Q 群:10047167

如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:(点击查看捐赠列表

广告区

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

【腾讯云】中小企业福利专场,多款刚需产品,满足企业通用场景需求

License

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.