Skip to content

lijinxiong/MyToast2

Repository files navigation

先上图

效果全部为原生Toast,通过添加自定义view实现

class KtToast internal constructor(context: Context, view: View) {
private val toast = Toast(context)

init {
    toast.view = view
}

fun gravity(gravity: Int, xOffset: Int = 0, yOffset: Int = 0): KtToast {
    toast.setGravity(gravity, xOffset, yOffset)
    return this
}

fun duration(duration: Int): KtToast {

    if (duration != 0 && duration != 1) toast.duration = 1
    else toast.duration = duration
    return this
}

fun show() {
    toast.show()
}
}

开始

开会看到Toasty挺好的,直自己用Kotlin写了一个,加上一些动画
布局没有使用anko,还是使用了xml,主要一开始的时候使用的时候出现了些问题,导致后来直接用xml

使用

// custom layout
fun Activity.layoutToast(@LayoutRes layoutRes: Int, init: View.() -> Unit,ktToastInit: KtToast.() -> KtToast = { this }) {
    val view = this.layoutInflater.inflate(layoutRes, null)
    view.init()
    KtToast(this, view).ktToastInit().show()
}	
  • layoutRes: 布局文件id
  • init:对布局文件中的View的一些初始化函数
  • ktToastInit:对Toast的设置,位置,时长

说明

动画的开始时在View attach 开始的时候
借助接口OnAttachStateChangeListener

github地址

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published