我们如何定义一个带有填充的列,并且只有一个项目不继承 Jetpack Compose 中该列的填充?

How can we define a column with padding and just one item doesn't inherit the padding of the column in Jetpack Compose?

我有一列有很多项目,我想为该列设置填充,因为所有项目都有相同的填充,除了其中一个没有填充,我如何考虑该特定的例外物品?或者是否可以添加一个属性,表示不获取 parent 填充?我知道我可以删除列的填充并逐一添加,但我想问问任何知道这一点的人,还有其他方法吗?

Column(
        modifier = Modifier
            .fillMaxSize()
            .verticalScroll(rememberScrollState()),
            .padding(16.dp),
        verticalArrangement = Arrangement.spacedBy(16.dp)
    ) {
 Text(text = "Teaser1")

Text(text = "Teaser2")

Text(text = "Teaser3")

Text(text = "Teaser")

Text(text = "Teaser4")

Text(text = "Teaser5")

...

}

预先感谢您的帮助。

您可以使用 Modifier.layout.

我通过为 measure 添加填充并在 place 期间应用填充偏移来覆盖宽度约束。

Text(
    text = "Teaser",
    modifier = Modifier
        .layout { measurable, constraints ->
            val noPaddingConstraints = constraints.copy(
                maxWidth = constraints.maxWidth + (padding * 2).roundToPx()
            ) 
            val placeable = measurable.measure(noPaddingConstraints)
            layout(placeable.width, placeable.height) {
                placeable.place(x = -padding.roundToPx(), y = 0)
            }
        }
)