将Flutter Widgets添加到FirebaseAnimatedList上方的布局中

问题描述 投票:0回答:1

所以我第一次构建一个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)的大小:视口的高度为其子高度的总和。

我已经尝试过这些选项,但我已经能够解决这个问题,如果有人之前遇到过这个问题或者知道解决方案,那么任何一些帮助都会非常感激。

firebase flutter
1个回答
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();
            }
          ),
        )
      ]
    )
  );
}

感谢您的回答,但是,在您的解决方案中,如何使用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"),
                        ]
                      )
                   );
                }
              ),
            )
          ]
        )
      );
    }
© www.soinside.com 2019 - 2024. All rights reserved.