小智 60
灵活下的小部件默认为WRAP_CONTENT,尽管您可以使用参数 Fit 更改它。
Expanded下的小部件是MATCH_PARENT,您可以使用flex更改它。
Rao*_*che 59
我也认为这个例子也很有帮助
Scaffold(
appBar: AppBar(),
body: Column(
children: <Widget>[
Row(
children: <Widget>[
buildExpanded(),
buildFlexible(),
],
),
Row(
children: <Widget>[
buildExpanded(),
buildExpanded(),
],
),
Row(
children: <Widget>[
buildFlexible(),
buildFlexible(),
],
),
],
),
);
Run Code Online (Sandbox Code Playgroud)
Rém*_*let 55
Expanded
只是一个简写 Flexible
使用扩展这种方式:
Expanded(
child: Foo(),
);
Run Code Online (Sandbox Code Playgroud)
严格等同于:
Flexible(
fit: FlexFit.tight,
child: Foo(),
);
Run Code Online (Sandbox Code Playgroud)
您可能需要使用Flexible
过Expanded
,当你想要一个不同的fit
,有用的一些响应布局.
FlexFit.tight
和之间的区别在于FlexFit.loose
,松散将允许其孩子具有最大尺寸,同时紧迫力使孩子填充所有可用空间.
扩展-灵活配合固定
class Expanded extends Flexible {
const Expanded({
Key key,
int flex = 1,
@required Widget child,
}) : super(key: key, flex: flex, fit: FlexFit.tight, child: child);
}
Run Code Online (Sandbox Code Playgroud)
扩展改变了子部件的约束,因此它填充了任何空白空间。Expanded widget 是一个专门的Flexible widget,具有固定的fit -Flexible(fit: FlexFit.tight)。Expanded widget 也有一个 flex 属性。
\n灵活使子部件灵活且可调整大小。您可以添加 flex 或 fit 属性来调整大小和间距。
\n灵活的配合特性包括:
\nExpanded() 只不过是 Flexible() 与
Flexible (fit: FlexFit.tight) = Expanded()
但是,fit :FlexFit.loose
默认情况下灵活使用。
FlexFit.tight = 想要尽可能地紧贴父组件并占用尽可能多的空间。
FlexFit.loose = 想要松散地融入父级,占用尽可能少的空间。
归档时间: |
|
查看次数: |
27638 次 |
最近记录: |