来自 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.现在画在 . 的边界之外。onGloballyPositioned
Text
requiredSize
Spacer
Spacer
ConstraintLayout
视觉上我想实现这一点:
我该怎么做呢?谢谢 :)