kirillrakhman
03/15/2016, 4:33 PMinline fun View.onPreDrawOnceWithResult(crossinline fn: () -> Boolean) {
val vto = viewTreeObserver ?: return
if (!vto.isAlive) return
vto.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
@Suppress("NAME_SHADOWING")
val vto = viewTreeObserver ?: return true
vto.removeOnPreDrawListener(this)
return fn()
}
})
}