如何连接单独声明的修饰符?

How to concatenate separately declared modifiers?

val modifierA = Modifier.size(100.dp)
val modifierB = Modifier.background(Color.Red)

如何创建一个 modifierC,即 A 和 B 的串联?

我尝试使用 .apply.also,但无济于事。

您可以使用composed函数:

Declare a just-in-time composition of a Modifier that will be composed for each element it modifies

类似于:

Box(modifierA.composed{ modifierB })

val modifierC = modifierA.composed{ modifierB }
Box(modifierC) {}

您可以使用Modifier.then

Concatenates this modifier with another.

val modifierA = Modifier.size(100.dp)
val modifierB = Modifier.background(Color.Red)
val modifierC = modifierA.then(modifierB)
Row {
    Box(
        modifier = Modifier
            .then(modifierC)
    )
    Box(
        modifier = Modifier
            .then(Modifier.size(100.dp))
            .then(Modifier.background(Color.Green))
    )
    Box(
        modifier = Modifier
            .size(100.dp)
            .background(Color.Blue)
    )
}

这三个修饰符是等价的,不包括颜色。