【问题标题】:Flutter - widget class in ternary operatorFlutter - 三元运算符中的小部件类
【发布时间】:2021-07-05 10:54:33
【问题描述】:

我想使用三元运算符在列和行之间切换,虽然只有一个子列表,但我知道有很多方法,如 condition ? Row() : Column() 但这需要为每个小部件键入子列表,我我知道我可以将子列表作为变量并将其传递给两者,但是如果下面的代码的想法无论如何都是可能的,我正在寻找什么?

(condition ? Row : Column)(
   children: [],
)

【问题讨论】:

    标签: flutter dart flutter-layout conditional-operator


    【解决方案1】:

    RowColumn 都是 Flex 的子级,因此只需使用 Flex 小部件并将 direction 参数设置为 Axis.horizontalAxis.vertical

    Flex(
      direction: condition ? Axis.vertical : Axis.horizontal, 
      children: []);
    

    【讨论】:

    • 感谢您的回答,您的回答确实有效,但我可能会问这个问题是否可以按照我提出的方式编写三元运算符?
    • @Nerox 您编写的方式不是有效的 Dart 语法。所以不,你不能像上面那样写它。虽然我看到您在那里尝试做的事情,但这将是构造对象的一种不常见的方式。它违背了惯例,这本身就会与飞镖坚持的最小惊讶原则相冲突。不幸的是,我认为不太可能支持这样的语法。
    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 2011-12-17
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多