这有效
myView.layoutParams = myView.layoutParams.apply { height = 100 }
Run Code Online (Sandbox Code Playgroud)
但这都不是(使用android-ktx)
myView.doOnLayout {
myView.layoutParams = myView.layoutParams.apply { height = 100 }
}
Run Code Online (Sandbox Code Playgroud)
也不是这个
myView.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
myView.layoutParams = myView.layoutParams.apply { height = 100 }
myView.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
})
Run Code Online (Sandbox Code Playgroud)
甚至这个
postDelayed({
myView.layoutParams = myView.layoutParams.apply { height = 100 }
}, 100)
Run Code Online (Sandbox Code Playgroud)
作品。为什么?