Flutter 颤振';她灵活的行为
我想把蓝色调满。Flutter 颤振';她灵活的行为,flutter,flutter-layout,Flutter,Flutter Layout,我想把蓝色调满。 但它只扩散到一半 类TestScene扩展了无状态小部件{ @凌驾 小部件构建(构建上下文){ 返回脚手架( appBar:appBar(), 正文:世界其他地区( mainAxisAlignment:mainAxisAlignment.spaceBetween, 儿童:[ 灵活的( 适合:FlexFit.宽松, 子:容器( 颜色:颜色,红色, 子项:常量文本('1'), ), ), 灵活的( 适合:FlexFit.宽松, 子:容器( 颜色:颜色,蓝色, 子项:const T
但它只扩散到一半
类TestScene扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
正文:世界其他地区(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
灵活的(
适合:FlexFit.宽松,
子:容器(
颜色:颜色,红色,
子项:常量文本('1'),
),
),
灵活的(
适合:FlexFit.宽松,
子:容器(
颜色:颜色,蓝色,
子项:const Text('123456789001234567890123456789012345678901234567890'),
),
),
],
),
);
}
}
反之亦然。这两种情况都很好。
用
展开的将要填充空间的内容包装起来。如果希望红色和蓝色都填充该行,请使用Expanded
包装它们,并使用flex属性为它们指定各自的比率
class TestScene extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Row(
children: <Widget>[
Container(
color: Colors.red,
child: const Text('1'),
),
Expanded(
child: Container(
color: Colors.blue,
child: const Text('1234567890123456789012345678901234567890'),
),
),
],
),
);
}
}
类TestScene扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
正文:世界其他地区(
儿童:[
容器(
颜色:颜色,红色,
子项:常量文本('1'),
),
扩大(
子:容器(
颜色:颜色,蓝色,
子项:const Text('123456789001234567890123456789012345678901234567890'),
),
),
],
),
);
}
}
这是一种方式!(占用剩余空间)
stringone='1',two='123456789001234567890123456789012345678901234567890';
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
背景颜色:Colors.white,
正文:世界其他地区(
mainAxisSize:mainAxisSize.max,
儿童:[
1.length>=2.length?
扩大(
子:容器(
颜色:颜色,红色,
儿童:文本(一),
),
):容器(
颜色:颜色,红色,
儿童:文本(一),
),
2.长度>=1.长度?
扩大(
子:容器(
颜色:颜色,蓝色,
儿童:文本(二),
),
):容器(
颜色:颜色,蓝色,
儿童:文本(二),
),
],
),
);
}
或者为了保持颜色大小相等,只需在两个小部件中使用Expanded,我无法发布任何图像,因为我没有至少10个级别。是否要将蓝色/红色填充到剩余空间,或者将一半的蓝色和红色分别填充50%而不显示字符串大小?否。我希望尽可能显示所有长度不定的两个字符串。如果红色是长文本,布局将崩溃。。。我想用问题中的三种模式实现一个漂亮的布局。只需将红色容器包装成展开的。对不起,为了清晰起见,示例中仅使用文本,事实很复杂。这一次的问题是,有足够的空间,但使用两个Flexible,您最多只能获得一半的空间。您可以用任何方式替换一个和文本!?
class TestScene extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Row(
children: <Widget>[
Container(
color: Colors.red,
child: const Text('1'),
),
Expanded(
child: Container(
color: Colors.blue,
child: const Text('1234567890123456789012345678901234567890'),
),
),
],
),
);
}
}
String one='1',two='1234567890123456789012345678901234567890';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
backgroundColor:Colors.white,
body: Row(
mainAxisSize:MainAxisSize.max,
children: <Widget>[
one.length>=two.length ?
Expanded(
child: Container(
color: Colors.red,
child: Text(one),
),
):Container(
color: Colors.red,
child: Text(one),
),
two.length>=one.length ?
Expanded(
child: Container(
color: Colors.blue,
child: Text(two),
),
):Container(
color: Colors.blue,
child: Text(two),
),
],
),
);
}