Nice nice.
先看效果

package com.github.john.test
import android.content.Context
import android.graphics.Color
import android.view.Gravity
import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.widget.FrameLayout
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.StringRes
import androidx.core.content.ContextCompat
class TopToast(val context: Context) :Toast(context){
private var topText: String = ""
private val museView: TextView = TextView(context).apply {
setBackgroundColor(Color.parseColor("#BB725A7C"))
gravity = Gravity.CENTER
setTextColor(ContextCompat.getColor(context, android.R.color.white))
setTextIsSelectable(false)
layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, MuseUtil.newDp2px(40f))
}
init {
view = FrameLayout(context).apply {
addView(museView)
systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
}
setGravity(Gravity.TOP+Gravity.FILL_HORIZONTAL, 0, MuseUtil.newDp2px(64f))
}
fun setTopText(text:String):TopToast{
topText = text
return this
}
fun setTopText(@StringRes stringRes:Int):TopToast{
topText = context.getString(stringRes)
return this
}
override fun getDuration(): Int = LENGTH_SHORT
override fun show() {
museView.text = topText
super.show()
}
}
调用的时候,可以
var myToast:TopToast? = null
fun toast(){
myToast?.cancel()
myToast = TopToast(this)
myToast.setText().show()
}
完美。
网友评论