我将用简单的例子来解释,
class Demo1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
children: [
Flexible(
child: ListView(
shrinkWrap: true,
children: const [
ListTile(
leading: Icon(Icons.image),
title: Text('with shrinkwrap is true'),
trailing: Icon(Icons.delete_forever),
),
])),
Expanded(
child: Container(
color: Colors.green,
)),
],
),
),
);
}
}
这里的绿色容器没有填充剩余的空间,那么如何填充剩余的区域呢?提前感谢
3条答案
按热度按时间rjee0c151#
尝试下面的代码,只是删除您的第一个
Flexible
小部件baubqpgj2#
您可以使用
SingleChildScrollView
,而不是将ListView与shrinkWrap: true
一起使用。您可能也喜欢
CustomScrollView
而不是SingleChildScrollView
和shrinkWrap:true
。vnjpjtjt3#
Flexible
和Expanded
的flex值都是1,因此它们都请求50%的可用空间,因此Expanded
的Container
子进程只占用一半空间,而Flexible
的ListView
子进程也请求一半空间,但需要很少的空间。您可以通过删除
Flexible
来使Container
填充可用空间,因此 PackageContainer
的Expanded
将获得所有可用空间。