如何获取可组合组件的MeasuredWitdh和MeasuredHeight?

问题描述 投票:0回答:2

假设我有以下可组合项:

Column(Modifier.fillMaxWidth()) {
        
    Text()
    Text()
    Text()

}

我想知道如何捕获

measuredWidth
measuredHeight
的值
Column
。 使用Android View框架风格,我可以利用View中的方法
onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int)

android android-layout android-jetpack-compose
2个回答
11
投票
var width = 0
var hegiht = 0
Column(modifier = Modifier.onGloballyPositioned { layoutCoordinates ->
    width = layoutCoordinates.size.width
    hegiht = layoutCoordinates.size.height
}) {
    // Column body
}

0
投票

您可以使用 DrawCacheModifier 来查找可组合项的大小:

Column(
    Modifier
    .fillMaxWidth()
    .then(object : DrawCacheModifier {
        override fun onBuildCache(size: Size, density: Density) {
          println("Size is $size")
       }
        override fun ContentDrawScope.draw() {
          drawContent()
    }

 })
)
© www.soinside.com 2019 - 2024. All rights reserved.