【问题标题】:Filling remaining space with Spacer on Jetpack Compose在 Jetpack Compose 上使用 Spacer 填充剩余空间
【发布时间】:2021-03-14 06:36:04
【问题描述】:

我在想我可能会遗漏一些东西,有没有办法在 Compose Beta01 中实现“填充其余空间”而无需额外的 Box 元素包裹垫片?很遗憾,Spacer 没有权重修饰符。

Column(
    modifier = Modifier
        .height(120.dp)
        .fillMaxWidth()
) {
    Text(
        text = "A"
    )
    Box(
        modifier = Modifier
            .weight(1f)
    ) {
        Spacer(
            Modifier
                .fillMaxHeight()
        )
    }
    Text(
        text = "B"
    )
}

编辑:

额外的盒子根本没有必要,我只是误用了修改器系统。附带说明一下,选择的答案可能是实现此目的的另一种好方法。

【问题讨论】:

    标签: android android-jetpack-compose


    【解决方案1】:

    据我所知,Column.arrangement 均匀地适用于所有孩子。

    如果您只想将剩余空间填充到最大,带有weight(1.0f) 修饰符的Spacer 可能是您想要的:

    Column(
        modifier = Modifier
            .fillMaxWidth()
    ) {
        Text("Text A") // top aligned
        Spacer(modifier = Modifier.weight(1.0f)) // fill height with spacer
        Text("Text B") // those two Texts are bottom aligned
        Text("Text C") 
    }
    

    【讨论】:

      【解决方案2】:

      这是你需要的吗?

      Column(
          modifier = Modifier
              .height(120.dp)
              .fillMaxWidth(),
          Arrangement.SpaceBetween
      ) {
          Text(text = "A")
          Text(text = "B")
      }
      

      您可以将元素排列为 SpaceAround、SpaceEvenly 和 SpaceBetween。

      【讨论】:

      • 我一开始就错误地使用了修饰符系统,但是这条评论指出了我的解决方案,确实,安排对这些情况很有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 2018-11-11
      • 2015-04-14
      相关资源
      最近更新 更多