Toast
使用¶
特点
- 可子线程
- 连续显示不重叠
- 全局自定义
- 居中屏幕显示
直接toast
显示吐司
显示¶
居中显示吐司¶
Android12 以后Toast被限制, 居中显示要求自定义吐司视图
- 文字吐司设置Gravity无效, 但是允许应用后台显示
- 自定义吐司下Gravity有效, 但是不允许应用后台显示
构建吐司工厂¶
吐司初始化时可指定ToastFactory
来自定义全局吐司样式
居中显示吐司源码示例
ToastGravityFactory.kt
/**
* 屏幕居中显示吐司
* @param gravity 对齐方式
* @param layout 吐司布局
* @param xOffset x轴偏移量
* @param yOffset y轴偏移量
*/
open class ToastGravityFactory(
val gravity: Int = Gravity.CENTER,
@LayoutRes val layout: Int = R.layout.layout_gravity_toast,
val xOffset: Int = 0,
val yOffset: Int = 0,
) : ToastFactory {
/**
* 创建吐司
* @param context Application
* @param message 吐司内容
* @param tag 吐司标签
*/
override fun onCreate(
context: Application,
message: CharSequence,
duration: Int,
tag: Any?
): Toast? {
val toast = Toast.makeText(context, message, duration)
val view = View.inflate(context, layout, null)
view.findViewById<TextView>(android.R.id.message).text = message
toast.view = view
toast.setGravity(gravity, xOffset, yOffset)
return toast
}
}