【问题标题】: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 measuredWidthmeasuredHeight 的值。 使用 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()
          }
      
       })
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-31
        • 2020-02-10
        • 1970-01-01
        • 2020-06-14
        • 2010-11-15
        • 2010-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多