2

它无法成功运行并出现以下错误:

Cannot find a parameter with this name: crossAxisSize

我该如何解决?这是我的代码:

@Composable
fun NewsStory() {
    Column(
            crossAxisSize = LayoutSize.Expand,
            modifier=Spacing(16.dp)
    )
    {
        Text("demo")
        Text("try")
        Text("somethings")
    }
}
4

2 回答 2

1

注意 - 请参阅下面的更新。

它在 FlexColumn 上可用。在 Column 中使用它,如下所示:

 @Preview
@Composable
fun NewsStory() {
    Column( modifier=Spacing(16.dp)) {
        FlexColumn(
            crossAxisSize = LayoutSize.Expand

        )
        {
            Text("demo")
            Text("try")
            Text("somethings")
        }
    }

}

我假设这是你想要的结果?

这是结果

弹性柱:

@Composable fun FlexColumn(
    modifier: Modifier = Modifier.None, 
    mainAxisAlignment: MainAxisAlignment = MainAxisAlignment.Start, 
    crossAxisAlignment: CrossAxisAlignment = CrossAxisAlignment.Start, 
    crossAxisSize: LayoutSize = LayoutSize.Wrap, 
    block: FlexChildren.() -> Unit
): Unit

链接在这里

编辑 - 重要提示: 刚刚知道 Flex 将很快被弃用。哦,使用 alpha 版本的乐趣(:所以正确的方法是使用Column/Row 并将 Flexible 修饰符应用于孩子们。保留这篇文章而不是删除,因为有人可能仍然想使用 FlexColumn/FlexRow,因为他们仍然正式出来。不要!

于 2020-01-03T19:02:32.760 回答
0

该参数crossAxisSize已从Column可组合中删除,我认为有利于使用修饰符。如果你想Column扩大到全尺寸,你可以添加Expanded修饰符,那么你的代码就变成了这样:

@Composable
fun NewsStory() {
    Column(
            modifier=Expanded.wraps(Spacing(16.dp))      <<<------ the change
    )
    {
        Text("demo")
        Text("try")
        Text("somethings")
    }
}

交换两个修饰符不应产生不同的结果。您也可以使用其中一个,ExpandedWidth或者ExpandedHeight如果您只想在一个方向上扩展(crossAxisSize实际上只在 a 的情况下扩展宽度FlexColumn)。

于 2020-01-03T18:27:38.650 回答