项目
嗨,我正试着在flutter中使用这个布局

我希望将顶部容器设置为初始大小,然后让它的维度由流控制
代码
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,
),
)
],
),问题是,这永远不会在flutter中工作,因为我必须为列的子级提供一个高度,而在这种情况下,流构建器没有一个高度。我已经尝试过像其他人在其他帖子中建议的那样,将流生成器包装在一个灵活的小部件中,并使用Flexfit.loose,但这不是我的解决方案,并导致了以下结果:

有解决方案吗?谢谢
发布于 2019-11-15 22:49:40
你的代码就像你想要的那样工作,不是吗?

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);
},
),
);
}https://stackoverflow.com/questions/58879183
复制相似问题