我正在Android Studio Canary 1上尝试Jetpack Compose,并向用户界面添加了Column
可编写的内容。 Column
有一个称为modifier
的属性,我们可以在其中传递不同的修饰符。我使用了Expanded
修饰符,导致Column
占用了所有可用空间。
此外,Column
具有mainAxisSize
和crossAxisSize
属性,因此我也尝试了它们,并将其设置为LayoutSize.Expand
,目的是扩展我认为的给定轴。这也导致Column
占用了所有可用空间。看看下面的例子:
Column(mainAxisSize = LayoutSize.Expand,
crossAxisSize = LayoutSize.Expand) {
Text("Jetpack",modifier = ExpandedHeight)
Text("Compose",modifier = ExpandedHeight)
}
Column(modifier = Expanded) {
Text("Jetpack",modifier = ExpandedHeight)
Text("Compose",modifier = ExpandedHeight)
}
观察到,以下两个代码提供相同的输出。 那么
Expanded
和LayoutSize.Expand
有什么区别 关于Column
和Row
?
答案 0 :(得分:2)
它们是完成同一件事的两种方法:
Expanded modifier强制目标组件填充所有可用空间。它可以应用于接受修饰符的任何可组合对象。
mainAxisSize参数是一种设置布局大小的方法,并且是特定于行/列的参数。
您应该使用扩展修饰符。 mainAxisSize参数已从Column中删除。