是否有一种方法可以自动将堆栈子项的大小调整为最大?
即如果我有一个Stack
,顶部有一个ListTile
和一个Container
,如何确保Container
覆盖了整个ListTile
?
示例:
new Stack(children: <Widget>[
new ListTile(
leading: new AssetImage('foo.jpg'),
title: new Text('Bar'),
subtitle: new Text('yipeee'),
isThreeLine: true,
),
new Container(color: Colors.grey, child: new Text('foo'))
],
)
我试图使其与Row
,Column
和Expanded
一起使用,但是遇到了无限制约束的问题。
是否有一种方法可以将Container
(或任何其他小部件,例如GestureDetector
)的大小调整为堆栈中最大的同级兄弟?
答案 0 :(得分:11)
我遇到了同样的问题,最后设法使用以下答案解决了这个问题:
在堆栈内部,应将背景小部件包装在Positioned.fill中。
return new Stack( children: <Widget>[ new Positioned.fill( child: background, ), foreground, ], );
将其应用于您的问题会导致以下结果:
Stack(
children: <Widget>[
ListTile(
leading: AssetImage('foo.jpg'),
title: Text('Bar'),
subtitle: Text('yipeee'),
isThreeLine: true,
),
Positioned.fill(
child: Container(color: Colors.grey, child: Text('foo')),
),
],
),