KotlinAndroid开发经验谈Kotlin

Kotlin&Toast&Animation

2017-06-16  本文已影响165人  咸鱼佬

先上图

效果全部为原生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()
}   

说明

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

github地址

上一篇 下一篇

猜你喜欢

热点阅读