but I would advice against this and instead write ...
# android
k
but I would advice against this and instead write a helper function that abstract the whole thing. here's one from my project:
Copy code
inline 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()
        }
    })
}