【发布时间】:2021-12-15 13:32:27
【问题描述】:
我对 Jetpack Compose Row 有疑问。
@Composable
private fun TopBar() {
val height = 50.dp
@Composable
fun LeftLongBar() {
Card(
backgroundColor = Color.White,
modifier = Modifier
.fillMaxHeight()
.fillMaxWidth(1f)
.padding(end = 10.dp),
elevation = 5.dp
) {
Row(
modifier = Modifier.fillMaxHeight(),
horizontalArrangement = Arrangement.SpaceAround,
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = "37 / 142",
color = CustomColors.dark,
fontSize = 25.sp
)
Text(
text = "B2",
color = CustomColors.dark,
fontSize = 25.sp
)
}
}
}
@Composable
fun RightSettingsBar() {
Card(
backgroundColor = Color.White,
modifier = Modifier
.size(height),
elevation = 5.dp
) {
Icon(
Icons.Outlined.Settings,
contentDescription = "Settings",
modifier = Modifier.size(height),
tint = CustomColors.dark
)
}
}
Row(
modifier = Modifier
.height(height)
.fillMaxWidth()
.padding(horizontal = height)
) {
LeftLongBar()
RightSettingsBar()
}
}
第一张图片是我的代码的结果。第二个图像是改变条形顺序的渲染结果。第二张图片首先被称为 RightSettingsBar(),其次是 LeftLongBar()。
在我的默认代码中,我看不到右侧的设置按钮。我认为这是因为 LeftLongBar() 卡中的 Modifier.fillMaxWidth() 。 LeftLongBar() 首先渲染并取行的所有宽度。但我想填充其剩余空间的宽度。我该如何解决这个问题?
【问题讨论】:
-
你需要创建一个
LeftLongBar的参数并在那里传递Modifier.weight(1f)
标签: kotlin android-jetpack-compose