diff --git a/ktx/src/main/java/com/llobile/android/ktx/clone/view/View.kt b/ktx/src/main/java/com/llobile/android/ktx/clone/view/View.kt index 4fa3363..fc35c68 100644 --- a/ktx/src/main/java/com/llobile/android/ktx/clone/view/View.kt +++ b/ktx/src/main/java/com/llobile/android/ktx/clone/view/View.kt @@ -1,5 +1,16 @@ package com.llobile.android.ktx.clone.view import android.view.View +import android.view.ViewTreeObserver fun View.isVisible(): Boolean = visibility == View.VISIBLE + +fun View.doOnPreDraw(action: ViewTreeObserver.() -> Boolean) { + val viewTreeObserver = this.viewTreeObserver + viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener { + override fun onPreDraw(): Boolean { + viewTreeObserver.removeOnPreDrawListener(this) + return action(viewTreeObserver) + } + }) +} \ No newline at end of file