【问题标题】:Hot to get MeasuredWitdh and MeasuredHeight of a Composable component?获得可组合组件的 MeasuredWitdh 和 MeasuredHeight 很热门?
【发布时间】:2020-11-09 18:19:57
【问题描述】:
假设我有以下可组合:
Column(Modifier.fillMaxWidth()) {
Text()
Text()
Text()
}
我想知道如何捕获Column 的measuredWidth 和measuredHeight 的值。
使用 Android View 框架风格,我可以利用 View 中的 onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) 方法。
【问题讨论】:
标签:
android
android-layout
android-jetpack-compose
【解决方案1】:
var width = 0
var hegiht = 0
Column(modifier = Modifier.onGloballyPositioned { layoutCoordinates ->
width = layoutCoordinates.size.width
hegiht = layoutCoordinates.size.height
}) {
// Column body
}
【解决方案2】:
您可以使用 DrawCacheModifier 来查找可组合的大小:
Column(
Modifier
.fillMaxWidth()
.then(object : DrawCacheModifier {
override fun onBuildCache(size: Size, density: Density) {
println("Size is $size")
}
override fun ContentDrawScope.draw() {
drawContent()
}
})
)