Flutter 我想在颤振中将我的行分成1/4的比例
我想把颤振中的行分成4列,每列的宽度相同。到目前为止,我想出的解决办法是Flutter 我想在颤振中将我的行分成1/4的比例,flutter,flutter-layout,Flutter,Flutter Layout,我想把颤振中的行分成4列,每列的宽度相同。到目前为止,我想出的解决办法是 child: Row( children: <Widget>[ Container( width: MediaQuery.of(context).size.width * 0.25, decoration: BoxDecoration(color: Colors.greenAccent), ),
child: Row(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.greenAccent),
),
Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.yellow),
),
Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.blue),
),
Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.white),
),
],
),
子项:行(
儿童:[
容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。绿色调),
),
容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。黄色),
),
容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。蓝色),
),
容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:彩色。白色),
),
],
),
除此之外还有其他选择吗。在这种方法中,将行划分为1/3的比例也不起作用。您可以使用
扩展的
或灵活的
,默认情况下它有flex:1
,您可以根据需要更改值
Row(
children: [
Expanded(
flex: 1, // you can play with this value, by default it is 1
child: Child1(),
),
Expanded(
flex: 1,
child: Child2(),
),
Expanded(
flex: 1,
child: Child3(),
),
Expanded(
flex: 1,
child: Child4(),
),
],
);
您可以通过使用
扩展小部件
检查以下代码:
它工作得非常好
1) 比例为1/3
行(
儿童:[
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。绿色调),
),
),
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。黄色),
),
),
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。蓝色),
),
),
],
),
1) 比例为1/4
行(
儿童:[
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。绿色调),
),
),
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。黄色),
),
),
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:颜色。蓝色),
),
),
扩大(
弹性:1,
子:容器(
宽度:MediaQuery.of(context).size.width*0.25,
装饰:盒子装饰(颜色:彩色。白色),
),
),
],
),
见下面的输出:
我希望这能回答您的问题。因为上面的解决方案中没有提到这一点。Flex是可用小部件中所占的比例。如果您使用两个扩展的小部件,一个用于flex 1,另一个用于flex 3,那么可用空间将被第一个扩展的小部件占用1/4,另一个占用3/4
Row(
children: <Widget>[
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.greenAccent),
),
),
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.yellow),
),
),
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.blue),
),
),
],
),
Row(
children: <Widget>[
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.greenAccent),
),
),
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.yellow),
),
),
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.blue),
),
),
Expanded(
flex: 1,
child: Container(
width: MediaQuery.of(context).size.width * 0.25,
decoration: BoxDecoration(color: Colors.white),
),
),
],
),