重读《Android 开发艺术探索》,本篇是书中的第四章内容的总结。
本章内容的思维导图
相关代码
Activity 启动后就获取布局中某个 View 的宽高
// 方法 1
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) {
val w = mView?.measuredWidth
val h = mView?.measuredHeight
}
}
// 方法 2
override fun onStart() {
super.onStart()
mView?.post {
val w = mView?.measuredWidth
val h = mView?.measuredHeight
}
}
// 方法 3
override fun onStart() {
super.onStart()
mView?.viewTreeObserver?.let { observer ->
observer.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener{
override fun onGlobalLayout() {
mView?.viewTreeObserver?.removeOnGlobalLayoutListener(this)
val w = mView?.measuredWidth
val h = mView?.measuredHeight
}
})
}
}