Surprise!,是不是以为自己进错了,不是高级一点的用法,而是高级一点的做法😂,接下来进入正题。
Toast这个工具呢,无论是在项目还是demo中我们都会使用到,平时用到的只有在退出app的时候才会拦截提示一下(需要在主页面返回监听单独处理,事件我忘记,需要可以google下),因为他太丑了,但是丑不是问题,问题是丑但是不知道打理,那就是我的不对了😄。
这里说一下我之前经常犯的错误,在调用玩makeText这个静态方法之后记得调用show,
方法才会起到作用。
1.简单用法。
普通显示的这里就不放图了,这里要说的是 Toast这个类在不同的版本或者不同机型,
上显示的样式也是略微不同的,据我所知在7.0和9.0就有很大的差距。
Toast.makeText(context,content,Toast.LENGTH_LONG).show()
2.自定用法
```kotlin
@SuppressLint("StaticFieldLeak")
//设置为单例模式,避免重复显示的问题
object ToastUtils {
//类中的内容为全局常量,所以这里的上下文可以在application中进行初始化
private lateinit var toast: Toast
private var context: Context? = null
fun show(content: String = "Toast") {
context?.let {
toast = Toast.makeText(context, content, Toast.LENGTH_LONG)
.apply {
//对样式的调整
setGravity(Gravity.CENTER, 0, 0)
view.setPadding(10, 5, 10, 5)
//自定义背景,drawable中的文件使用的是 shape
view.setBackgroundResource(R.drawable.shape_toast)
//自定义文字颜色,大小
val testMsg = view.findViewById<TextView>(android.R.id.message)
testMsg.setTextColor(Color.WHITE)
show()
}
}
}
/**
*初始化为全局的吐司
*/
fun init(context: Context) {
ToastUtils.context = context
}
}
这就是对Toast尽心简单的自定义,当然大家可以实现更加复杂的效果,具体怎么做,就要看自己的想象力了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191120210416543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1FpdVlhbmdBbmRaaGFuZw==,size_16,color_FFFFFF,t_70)