如何连接单独声明的修饰符?
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)
)
}
这三个修饰符是等价的,不包括颜色。
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)
)
}
这三个修饰符是等价的,不包括颜色。