Toast 高級一點的用法

在這裏插入圖片描述
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章