I am trying to get height of a view in onCreate method but I couldn\'t find any way to remove OnGlobalLayoutListener.
In Java (working):
containerLay
Another solution is to implement and use self-reference:
class SelfReference(val initializer: SelfReference.() -> T) {
val self: T by lazy {
inner ?: throw IllegalStateException()
}
private val inner = initializer()
}
fun selfReference(initializer: SelfReference.() -> T): T {
return SelfReference(initializer).self
}
Then the usage would be
containerLayout.viewTreeObserver.addOnGlobalLayoutListener(selfReference {
OnGlobalLayoutListener {
containerLayout.viewTreeObserver.removeOnGlobalLayoutListener(self)
// ...
}
}
Instead of this, self property is used.