我用过extended和Flexible小部件,它们的工作原理是一样的。
扩展和灵活之间的区别是什么?
我用过extended和Flexible小部件,它们的工作原理是一样的。
扩展和灵活之间的区别是什么?
当前回答
扩展-它是灵活的设置适合
class Expanded extends Flexible {
const Expanded({
Key key,
int flex = 1,
@required Widget child,
}) : super(
key: key,
flex: flex,
fit: FlexFit.tight,
child: child
);
}
其他回答
扩展只是灵活的简称
这样使用Expanded:
Expanded(
child: Foo(),
);
严格等价于:
Flexible(
fit: FlexFit.tight,
child: Foo(),
);
当你想要一个不同的适合度时,你可能想要使用Flexible而不是Expanded,这在一些响应式布局中很有用。
FlexFit的区别。紧身和FlexFit。Loose表示Loose将允许其子元素拥有最大大小,而tight则强制其子元素填充所有可用空间。
Expanded()只不过是Flexible() with
Flexible (fit: FlexFit.tight) = Expanded()
但是,Flexible使用fit:FlexFit。默认为松散。
FlexFit。紧=想紧紧地挤进父母的身体,占据尽可能多的空间。
FlexFit。宽松=想要宽松地融入父母,为自己占据尽可能少的空间。
Flexible下的Widget默认为WRAP_CONTENT,尽管您可以使用参数匹配来更改它。
Widget下面的扩展是MATCH_PARENT,您可以使用flex更改它。
扩展-它是灵活的设置适合
class Expanded extends Flexible {
const Expanded({
Key key,
int flex = 1,
@required Widget child,
}) : super(
key: key,
flex: flex,
fit: FlexFit.tight,
child: child
);
}
Scaffold(
appBar: AppBar(),
body: Column(
children: <Widget>[
Row(
children: <Widget>[
buildExpanded(),
buildFlexible(),
],
),
Row(
children: <Widget>[
buildExpanded(),
buildExpanded(),
],
),
Row(
children: <Widget>[
buildFlexible(),
buildFlexible(),
],
),
],
),
);