Jetpack Compose中Expanded和LayoutSize.Expand列和行的区别

时间:2019-10-25 12:21:12

标签: android-jetpack-compose

我正在Android Studio Canary 1上尝试Jetpack Compose,并向用户界面添加了Column可编写的内容。 Column有一个称为modifier的属性,我们可以在其中传递不同的修饰符。我使用了Expanded修饰符,导致Column占用了所有可用空间。

此外,Column具有mainAxisSizecrossAxisSize属性,因此我也尝试了它们,并将其设置为LayoutSize.Expand,目的是扩展我认为的给定轴。这也导致Column占用了所有可用空间。看看下面的例子:

1。使用LayoutSize.Expand

Column(mainAxisSize = LayoutSize.Expand,
crossAxisSize = LayoutSize.Expand) {
    Text("Jetpack",modifier = ExpandedHeight)
    Text("Compose",modifier = ExpandedHeight)
}

输出:

enter image description here

2。使用扩展

Column(modifier = Expanded) {
    Text("Jetpack",modifier = ExpandedHeight)
    Text("Compose",modifier = ExpandedHeight)
}

输出:

enter image description here

  

观察到,以下两个代码提供相同的输出。   那么ExpandedLayoutSize.Expand有什么区别   关于ColumnRow

1 个答案:

答案 0 :(得分:2)

它们是完成同一件事的两种方法:

Expanded modifier强制目标组件填充所有可用空间。它可以应用于接受修饰符的任何可组合对象。

mainAxisSize参数是一种设置布局大小的方法,并且是特定于行/列的参数。

您应该使用扩展修饰符。 mainAxisSize参数已从Column中删除。