匹配列中父项的宽度(JetpackCompose)
默认情况下,Column {}
具有其最大子元素的宽度。如何使所有其他元素适合父元素的宽度Column
?如果我使用Modifier.fillMaxWidth()
这些元素将占用整个可用空间并使父元素Column
变大。我怎样才能实现与Modifier.matchParentWidth()
Modifier 提供的相同的行为?
回答
随着1.0.x
你可以使用修饰符.width(IntrinsicSize.Max)
Column(Modifier.width(IntrinsicSize.Max)) {
Box(Modifier.fillMaxWidth().background(Color.Gray)) {
Text("Short text")
}
Box(Modifier.fillMaxWidth().background(Color.Yellow)) {
Text("Extremely long text giving the width of its siblings")
}
Box(Modifier.fillMaxWidth().background(Color.Green)) {
Text("Medium length text")
}
}
回答
解决方案是利用内在测量的力量。
而不是使用Modifier.fillMaxWidth()
我们使用height(IntrinsicSize.Min)
将宽度匹配到最大元素的最小宽度