我用过extended和Flexible小部件,它们的工作原理是一样的。

扩展和灵活之间的区别是什么?


当前回答

您可以使用Flexible来调整行和列中的小部件大小。它主要用于调整不同子小部件的空间,同时保持与它们的父小部件的关系。

同时,Expanded改变了发送给行和列的子节点的约束;它有助于填补那里的可用空间。因此,当您将子组件包装在一个Expanded小部件中时,它会填充空白区域。

提供这些来自Flutter官方YouTube频道的视频只是为了帮助人们,他们可能会在即将到来的未来寻找这个…

扩展: 灵活:

其他回答

您可以使用Flexible来调整行和列中的小部件大小。它主要用于调整不同子小部件的空间,同时保持与它们的父小部件的关系。

同时,Expanded改变了发送给行和列的子节点的约束;它有助于填补那里的可用空间。因此,当您将子组件包装在一个Expanded小部件中时,它会填充空白区域。

提供这些来自Flutter官方YouTube频道的视频只是为了帮助人们,他们可能会在即将到来的未来寻找这个…

扩展: 灵活:

Scaffold(
  appBar: AppBar(),
  body: Column(
    children: <Widget>[
      Row(
        children: <Widget>[
          buildExpanded(),
          buildFlexible(),
        ],
      ),
      Row(
        children: <Widget>[
          buildExpanded(),
          buildExpanded(),
        ],
      ),
      Row(
        children: <Widget>[
          buildFlexible(),
          buildFlexible(),
        ],
      ),
    ],
  ),
);

Expanded将更改子部件的约束,使其填充任何空白区域。扩展的小部件是一个专门的灵活的小部件,设置适合-灵活(适合:FlexFit.tight。展开的小部件也有一个flex属性。

Flexible使子部件具有灵活性并可调整大小。您可以添加flex或fit属性来调整大小和间距。

柔性配合属性包括:

FlexFit。loose -使用小部件的首选大小。(默认) FlexFit。tight -强制小部件填充它的所有额外空间。

扩展-它是灵活的设置适合

class Expanded extends Flexible {
    const Expanded({
        Key key,
        int flex = 1,
        @required Widget child,
    }) : super(
        key: key, 
        flex: flex, 
        fit: FlexFit.tight, 
        child: child
    );
}

Flexible下的Widget默认为WRAP_CONTENT,尽管您可以使用参数匹配来更改它。

Widget下面的扩展是MATCH_PARENT,您可以使用flex更改它。