Skip to content

Commit e5b1198

Browse files
committed
Update view holder's getSize logic
1 parent 62f0451 commit e5b1198

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

imageloader/src/main/java/com/tomclaw/imageloader/util/ImageViewHolder.kt

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.tomclaw.imageloader.util
22

33
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
44
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
5-
import android.view.ViewTreeObserver
65
import android.widget.ImageView
76
import com.tomclaw.imageloader.core.ViewHolder
87
import com.tomclaw.imageloader.core.ViewSize
@@ -13,29 +12,17 @@ class ImageViewHolder(private val imageView: ImageView) : ViewHolder<ImageView>
1312
override fun getSize(): ViewSize {
1413
optSize()?.let { return it }
1514

16-
var viewSize = ViewSize(0, 0)
1715
val latch = CountDownLatch(1)
18-
19-
val preDrawListener = object : ViewTreeObserver.OnPreDrawListener {
20-
private var isResumed = false
21-
22-
override fun onPreDraw(): Boolean {
23-
val size = optSize()
24-
if (size != null) {
25-
viewSize = size
26-
imageView.viewTreeObserver.removeOnPreDrawListener(this)
27-
28-
if (!isResumed) {
29-
isResumed = true
30-
latch.countDown()
31-
}
32-
}
33-
return true
16+
var viewSize = ViewSize(0, 0)
17+
imageView.post {
18+
val size = optSize()
19+
if (size != null) {
20+
viewSize = size
3421
}
22+
latch.countDown()
3523
}
36-
imageView.viewTreeObserver.addOnPreDrawListener(preDrawListener)
37-
3824
latch.await()
25+
3926
return viewSize
4027
}
4128

0 commit comments

Comments
 (0)