嗨,我正试图在颤抖中使用这种布局
我希望将顶部容器设置为初始大小,然后让其尺寸由流控制
Column(
children: <Widget>[
StreamBuilder(
stream: streamController.stream ,
initialData: initialData ,
builder: (BuildContext context, AsyncSnapshot snapshot){
return AnimatedContainer(
duration: Duration(milliseconds: 300),
height: 200,
);
},
),
Expanded(
child: AnimatedContainer(
duration: Duration(milliseconds: 300),
color: Colors.green,
),
)
],
),
问题在于这永远不会起作用,因为我必须为列的子代提供一个高度,在这种情况下,流生成器没有一个。
正如其他人所建议的那样,我已经尝试过将流构建器包装在灵活的小部件中并使用Flexfit.loose
,但这对我来说不是解决方案,并且导致了以下结果:
有解决方案吗? 谢谢
答案 0 :(得分:1)
您的代码可以按需要工作,不是吗?
final streamController = StreamController<double>.broadcast();
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Row(
children: <Widget>[
Expanded(
child: Column(
children: <Widget>[
StreamBuilder(
stream: streamController.stream,
initialData: 200.0,
builder: (BuildContext context, AsyncSnapshot snapshot) {
return AnimatedContainer(
duration: Duration(milliseconds: 300),
height: snapshot.data,
color: Colors.blue
);
},
),
Expanded(
child: AnimatedContainer(
duration: Duration(milliseconds: 300),
color: Colors.green,
),
)
],
),
)
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
streamController.add(Random().nextDouble() * 200);
},
),
);
}