来自 SwiftUI,我想创建一个Text具有圆形背景的视图,其中圆形的宽度/高度随着内部文本的Text变长而增长。
由于Circle()在 Compose 中没有像在 中那样SwifUI,所以我只创建了一个Spacer并剪裁了它。使用下面的代码是ConstraintLayout因为我不知道如何获得宽度Text以便将Circle可组合的大小设置为相同:
@Composable
fun CircleDemo() {
ConstraintLayout {
val (circle, text) = createRefs()
Spacer(
modifier = Modifier
.background(Color.Black)
.constrainAs(circle) {
centerTo(text)
}
)
Text(
text = "Hello",
color = Color.White,
modifier = Modifier
.constrainAs(text) {
centerTo(parent)
}
)
}
}
我可以使用我在附加到的修饰符mutableStateOf { 0 }中更新它的位置,然后将其设置为 的,但是 1. 这似乎很愚蠢, 2.现在画在 . 的边界之外。onGloballyPositionedTextrequiredSizeSpacerSpacerConstraintLayout
视觉上我想实现这一点:
我该怎么做呢?谢谢 :)

