因此,我是第一次构建Flutter应用程序,因此我仍然有一种方法可以完全理解该框架,但是我一直陷于这个问题,在其他任何地方都找不到很好的答案。< / p>
在我的布局中,我有一个FirebaseAnimatedList,它可以无限滚动。
我只需要在FirebaseAnimatedList上方添加一个小部件来显示其他数据。
Widget body = new ListView(
children: <Widget>[
new Text("Hello!"),
new FirebaseAnimatedList(//..........)
],
);
然后我将该正文小部件添加为新的Scaffold对象的body元素。
但是我收到以下错误:
══╡渲染库引起的异常CA ══════════════════════ I / flutter(25559):在performResize()期间引发了以下断言: I / flutter(25559):垂直视口的高度不受限制。 I / flutter(25559):视口沿滚动方向扩展以填充其容器。在这种情况下,垂直 I / flutter(25559):视口被赋予了无限的垂直空间来扩展。这个情况 I / flutter(25559):通常在将可滚动小部件嵌套在另一个可滚动小部件内时发生。 I / flutter(25559):如果此窗口小部件始终嵌套在可滚动窗口小部件中,则无需使用视口,因为 I / flutter(25559):孩子们总是会有足够的垂直空间。在这种情况下,请考虑使用列 I / flutter(25559):代替。否则,请考虑使用“ shrinkWrap”属性(或ShrinkWrappingViewport)调整大小 I / flutter(25559):视口的高度与其子代高度的总和。
我已经尝试过这些选项,但是我已经能够解决这个问题,如果任何人以前曾遇到过这个问题或知道解决方案,那么任何帮助都将不胜感激。
答案 0 :(得分:1)
您要在列表顶部放置静态小部件吗?
您能教一些有关代码的事情吗?
原因: 原因是您在调用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();
}
),
)
]
)
);
}
感谢您的回答,但是,在您的解决方案中,我如何使新的Text(“ Hello”)消息与FirebaseanimatedList一起滚动而不是附加在顶部。
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"),
]
)
);
}
),
)
]
)
);
}