如何将 Arrangement.spacedBy() 和 Arrangement.Center 组合在 Row.horizo​​ntalArrangement 中

Rob*_*rdi 35 android android-jetpack-compose android-jetpack-compose-layout android-compose-layout

是否可以将Arrangement.spacedBy(16.dp)and组合Arrangement.Center在一个 中Row.horizontalArrangement

我想做的是将内容水平居中并设置默认间距16.dp

我知道我可以结合Row和 aBox来达到相同的结果,但我想知道是否可以仅使用 heRow的属性来完成。

    Row(
        modifier = Modifier.fillMaxWidth(),
        horizontalArrangement = Arrangement.Center, // I would like to add the .spacedBy(16.dp), keeping the Center arrangement 
        verticalAlignment = Alignment.CenterVertically,
    ) {
        Text(
            text = stringResource(R.string.generic_error_pagination),
            style = MaterialTheme.typography.subtitle1,
            color = MaterialTheme.colors.textSecondary,
        )
        OutlinedButton(onClick = onClick) {
            Text(stringResource(id = R.string.retry_button))
        }
    }
Run Code Online (Sandbox Code Playgroud)

Gab*_*tti 64

使用spacedBy带有alignment参数的变体:

alignment可以指定An来将间隔的子项在父项内水平对齐

    Row(
        modifier = Modifier.fillMaxWidth(),
        horizontalArrangement = Arrangement
            .spacedBy(
                space = 16.dp, 
                alignment = Alignment.CenterHorizontally
            ),
        verticalAlignment = Alignment.CenterVertically,
    )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 谢谢!“Arrangement.spacedBy”接受“Alignment”作为参数的事实有点违反直觉,不是吗? (4认同)
  • 该死,这太容易了!我尝试使用该变体,但我错过了“Alignment.CenterHorizo​​ntally”。谢谢 (2认同)