QuickToast使用详解-快速Toast,非主线程也可弹出

QuickToast是什么东西呢,顾名思义就是快速Toast,并且非主线程也可弹出,无需绑定Context

那此组件有什么特点:

可在任意子线程弹出,无需绑定context,自动缓存上一个Toast,快速配置且支持自定义,实时弹出Toast,不会像原生那样跳动,等待上一个Toast结束再弹出下一个,此组件也绑定了QuickViewHolder,方便设置数据。

接下来我们看一下正常写法:

1、默认Toast

Toast.makeText(this,"这是内容",Toast.LENGTH_SHORT).show()

代码很简洁,但是有个缺点,依赖context,并且只能在主线程弹出,如果需要弹出N个,那么排队等待上一个完成才弹出下一个

2、自定义Toast

val toast = Toast(this)
toast.view = LayoutInflater.from(this).inflate(R.layout.app_toast, null)
toast.duration = Toast.LENGTH_SHORT
toast.setGravity(Gravity.BOTTOM, 0, 100)
toast.view.findViewById<TextView>(R.id.toastMsgTv).text = "这是内容"
toast.show()

两种方式都有共同缺点,依赖context,并且只能在主线程弹出。我们如何优化呢?

那么,请看下QuickStartActivity的写法

1、默认Toast

QuickToast.showToastDefault("这是内容")

只需要传入内容即可,可在任意线程弹出,且不需要传递context

2、简单自定义Toast

QuickToast.Builder().setDuration(Toast.LENGTH_SHORT).setGravity(Gravity.BOTTOM, 0, 100).showToast("这是内容")

3、自定义ToastView

QuickToast.Builder().setGravity(Gravity.CENTER).showToast("这是内容")
                .setImg(R.id.imgIv, R.mipmap.ic_launcher)
                .setText(R.id.userName, "这是用户名称")

4、创建多个不同的Toast

QuickToast.Builder().setDuration(Toast.LENGTH_SHORT).setGravity(Gravity.BOTTOM, 0, 100).create("这是内容")

是不是简洁灵活呢。

以上就是使用方式------end

推荐使用gradle接入

implementation 'org.quick.android:quick-component:latest.release'

源码地址:https://github.com/SpringSmell/quick-component

好了,到这里就结束,好东西那当然要分享了,马上告诉小伙伴我发现了一个很酷的东西吧

QuickAndroid系列全家桶

猜你喜欢

转载自blog.csdn.net/Fy993912_chris/article/details/81666237