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)