如何在Row.horizontalArrangement中同时使用Arrangement.spacedBy()和Arrangement.Center?

29

Row.horizontalArrangement 中是否可以将Arrangement.spacedBy(16.dp)Arrangement.Center 结合起来使用?

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

我知道可以通过将 RowBox 结合使用来实现相同的结果,但我想知道是否可以仅通过 Row 的属性来完成。

    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))
        }
    }
1个回答

54

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

可以指定一个alignment来在父元素内使空间子元素水平对齐

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

enter image description here


2
太简单了!我尝试使用那个变量,但是我错过了 Alignment.CenterHorizontally。谢谢。 - Roberto Leinardi
1
谢谢!Arrangement.spacedBy 接受 Alignment 作为参数的事实有点令人费解,不是吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接