我的问题的背景:Expanded
小部件缩小,如果需要,其子小部件零高度,并忽略其子级约束。
目标:防止扩展widget
,将其缩小到小于其子大小的 ,以便其小部件不会被破坏。
< / p>
此外,我需要小部件占用所有可用空间并展开其子级。
旁注:
Container
用于分配高度空间,以使expanded
对空间变化做出反应
代码如下:
import 'package:flutter/material.dart';
class MainScreen extends StatelessWidget {
const MainScreen({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(
child: Card(
color: Colors.blueAccent,
child: LimitedBox(
maxHeight: 200,
child: Text(
'Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text Test dummy text ',
style: TextStyle(fontSize: 60, color: Colors.black),
),
),
),
),
Container(
color: Colors.amberAccent,
height: 105,
width: 200,
)
],
),
);
}
}
这是不需要的电流输出:
Expanded
正常行为:
答案 0 :(得分:1)
使用Flexible
小部件并以最小高度添加Container
,蓝色容器的大小将随着文本的增加而增加。
Scaffold(
appBar: AppBar(),
body: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Flexible(
child: Container(
constraints: BoxConstraints(
minHeight: 200, minWidth: double.infinity),
child: Card(
color: Colors.blueAccent,
child: Text(
'Sample Text',
style: TextStyle(fontSize: 60, color: Colors.black),
),
),
),
),
Container(
color: Colors.amberAccent,
height: 105,
width: 200,
)
],
),
)
),
输出: