所以我第一次构建一个Flutter应用程序,所以我仍然有办法完全理解框架,但我仍然坚持这个问题,我无法在其他任何地方找到一个好的答案。
在我的布局中,我有一个可以无限滚动的FirebaseAnimatedList。
我只需要在FirebaseAnimatedList上面添加一个显示其他数据的小部件。
Widget body = new ListView(
children: <Widget>[
new Text("Hello!"),
new FirebaseAnimatedList(//..........)
],
);
然后我将该body小部件添加为新Scaffold对象的body元素。
但是我收到以下错误:
══╡通过渲染图书馆的例外情况╞═══════════════════════════════════════════════════════════════════════════════════════════════ = / flutter(25559):在performResize()期间抛出以下断言:I / flutter(25559):垂直视口被赋予无限高度。 I / flutter(25559):视口在滚动方向上展开以填充其容器。在这种情况下,垂直I / flutter(25559):视口被赋予了无限量的垂直空间,可以在其中展开。这种情况I / flutter(25559):通常在可滚动窗口小部件嵌套在另一个可滚动窗口小部件中时发生。 I / flutter(25559):如果这个小部件总是嵌套在一个可滚动的小部件中,则不需要使用视口,因为I / flutter(25559):对于这些小孩总是有足够的垂直空间。在这种情况下,请考虑使用Column I / flutter(25559):而不是。否则,请考虑使用“shrinkWrap”属性(或ShrinkWrappingViewport)来调整I / flutter(25559)的大小:视口的高度为其子高度的总和。
我已经尝试过这些选项,但我已经能够解决这个问题,如果有人之前遇到过这个问题或者知道解决方案,那么任何一些帮助都会非常感激。
你想把静态小部件放在列表的顶部吗?
你能教一些关于代码的东西吗?
原因:原因是您在调用FirebaseAnimatedList时创建了一个列表,而FirebaseAnimatedList正在生成另一个列表。
Container getContent() {
return new Container(
child: new Column(
children: <Widget>[
new Text("HELLO"),
new Flexible(
child: new FirebaseAnimatedList(
query: Your database reference,
itemBuilder: (_, DataSnapshot snapshot, Animation<double>
animation, int index) {
return new Column();
}
),
)
]
)
);
}
感谢您的回答,但是,在您的解决方案中,如何使用FirebaseanimatedList滚动新的Text(“Hello”)消息,而不是在顶部附加。
Container getContent() {
return new Container(
child: new Column(
children: <Widget>[
new Flexible(
child: new FirebaseAnimatedList(
query: Your database reference,
itemBuilder: (_, DataSnapshot snapshot, Animation<double>
animation, int index) {
return new Container(
child: new Column(
children: <Widget>[
new Text("HELLO"),
]
)
);
}
),
)
]
)
);
}