我想在 Jetpack Compose 的 Row 末尾设置 RadioButton 组件。尝试使用约束布局并将 RadioButton 移到行之外,但 RadioButton 没有与行中的其他组件居中。我应该怎么办?

这是我的代码:
ConstraintLayout {
val (row, button) = createRefs()
Row(
modifier = Modifier
.height(56.dp)
.fillMaxWidth()
.constrainAs(row){
start.linkTo(parent.start)
end.linkTo(parent.end)
},
verticalAlignment = Alignment.CenterVertically
) {
Icon(
/* *** */
)
Text(
text = "mail@gmail.com",
modifier = Modifier.padding(start = 16.dp, end = 16.dp),
)
RadioButton(
/* *** */
)
}
}
Run Code Online (Sandbox Code Playgroud)
更重要的是,如果文本太长,我想剪切文本组件(不覆盖或放在单选按钮下面)
我有一个 Row 组件,由于填充修饰符的原因,该组件在整个区域都不可单击。如何使该组件在整个区域上可单击并具有相同的填充效果?
@Composable
fun UserRow() {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
.clickable {
/* ... */
}
) {
Icon(
/* ... */
)
Text(
/* ... */
)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个 Compose 组件,里面有一个盒子和 2 个组件,但它们永远不会同时可见。我想将此框的大小调整为第一个组件,并在该组件不可见时保持不变。
Box(
modifier = modifier.then(Modifier.background(bgColor)),
contentAlignment = Alignment.Center
) {
if (componentVisible1) {
Button(
modifier = Modifier.height(48.dp).widthIn(144.dp),
onClick = onClicked,
enabled = enabled
) {
Text(
text = "text1",
)
}
}
if (component2Visible) {
CircularProgressIndicator(
modifier = Modifier.size(24.dp).background(buttonColor, CircleShape).padding(2.dp),
strokeWidth = 2.dp
)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当 component1 不可见时,框的宽度会减小。