【问题标题】:Jetpack Compose horizontal alignment issueJetpack Compose 水平对齐问题
【发布时间】:2021-07-09 05:15:29
【问题描述】:

我需要将图像和文本视图定位到卡片的开头,子列水平居中对齐,但是正如您从照片中看到的那样,列以某种方式被拉伸了正在放置的屏幕的宽度中心的图像和文本视图。任何人都可以看到我的代码有任何问题吗?

@Composable
fun TrainerCard(profile: TrainerProfile) {
Card(modifier = Modifier
    .height(180.dp)
    .fillMaxWidth()
    .padding(4.dp)) {
    Column(modifier = Modifier
        .fillMaxHeight()
        .width(120.dp)
        .border(1.dp, color = Color.Red),
        horizontalAlignment = Alignment.CenterHorizontally) {
        Image(
            modifier = Modifier
                .size(120.dp)
                .padding(top = 4.dp, start = 4.dp),
            painter = painterResource(R.drawable.pokepals_logo),
            contentDescription = null
        )
        Text(
            text = profile.trainerName,
            style = MaterialTheme.typography.subtitle1)
        }
    }
}    

【问题讨论】:

  • 删除horizontalAlignment = Alignment.CenterHorizontally 会做你想做的事。
  • 但是我的文本视图不会在图像视图下水平居中
  • 哦!好的......尝试2来帮助......:P你可以将你的列包装成一个盒子。它在这里工作;)

标签: android android-jetpack-compose


【解决方案1】:

在您的 Column 中添加 wrapContentWidth(Alignment.Start) 修饰符:

    Column(modifier = Modifier
        .fillMaxHeight()
        .width(120.dp)
        .wrapContentWidth(Alignment.Start)
        .border(1.dp, color = Color.Red),
        horizontalAlignment = Alignment.CenterHorizontally
        ) 

【讨论】:

  • 完美运行!
猜你喜欢
  • 2023-02-24
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
相关资源
最近更新 更多