From 8c6ed6345f4a4eafd5f7f26c94eb3c2cefcb11c0 Mon Sep 17 00:00:00 2001 From: Mobile Developer - Wenjuan Date: Thu, 8 Feb 2018 11:38:11 +0000 Subject: [PATCH 1/2] Viewtree observer --- .../java/com/llobile/android/ktx/clone/view/View.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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..365dfd9 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,17 @@ 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) + action(viewTreeObserver) + return true + } + }) +} \ No newline at end of file From 1557190d16bc069e430a09e3750849bf3d74f6d4 Mon Sep 17 00:00:00 2001 From: Mobile Developer - Wenjuan Date: Thu, 8 Feb 2018 12:02:03 +0000 Subject: [PATCH 2/2] Viewtree observer improved --- ktx/src/main/java/com/llobile/android/ktx/clone/view/View.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 365dfd9..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 @@ -10,8 +10,7 @@ fun View.doOnPreDraw(action: ViewTreeObserver.() -> Boolean) { viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) - action(viewTreeObserver) - return true + return action(viewTreeObserver) } }) } \ No newline at end of file