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'
好了,到这里就结束,好东西那当然要分享了,马上告诉小伙伴我发现了一个很酷的东西吧。
QuickAndroid系列全家桶