【问题标题】:Add Flutter Widgets to layout above FirebaseAnimatedList将 Flutter Widgets 添加到 FirebaseAnimatedList 上方的布局
【发布时间】:2019-01-25 07:47:30
【问题描述】:

所以我是第一次构建一个 Flutter 应用程序,所以我仍然有办法完全理解这个框架,但是我被这个问题困住了,我无法在其他任何地方找到一个好的答案。

在我的布局中,我有一个可以无限滚动的 FirebaseAnimatedList。

我只需要在 FirebaseAnimatedList 上方添加一个显示其他数据的小部件。

Widget body = new ListView(
  children: <Widget>[
    new Text("Hello!"),
    new FirebaseAnimatedList(//..........)
    ],
);

然后我将该 body 小部件添加为新 Scaffold 对象的 body 元素。

但我收到以下错误:

══╡ 渲染库发现异常╞══════════════════════════════════════ ══════════════════════ I/flutter (25559):在 performResize() 期间抛出以下断言: I/flutter (25559):垂直视口的高度没有限制。 I/flutter (25559):视口在滚动方向上扩展以填充其容器。在这种情况下,垂直 I/flutter (25559):视口被赋予了无限量的垂直空间来扩展。这个情况 I/flutter (25559):通常发生在可滚动小部件嵌套在另一个可滚动小部件中时。 I/flutter (25559):如果此小部件始终嵌套在可滚动小部件中,则无需使用视口,因为 I/flutter (25559):总会有足够的垂直空间供孩子们使用。在这种情况下,请考虑使用 Column 我/颤振(25559):改为。否则,请考虑使用“shrinkWrap”属性(或 ShrinkWrappingViewport)来调整大小 I/flutter (25559):视口高度与其子项高度之和。

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

【问题讨论】:

    标签: firebase flutter


    【解决方案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"),
                            ]
                          )
                       );
                    }
                  ),
                )
              ]
            )
          );
        }
    

    【讨论】:

    • 对不起,我在您进行编辑之前发表了我之前的评论,这确实有效,尽管我不完全确定为什么。不过谢谢!
    • 我刚刚更新了代码,现在试试,如果出现错误,请应用更多您的代码。
    • 如果您的问题已经解决,我可以对我的回答投赞成票
    • 感谢您的回答,但是,在您的解决方案中,如何使新的 Text("Hello") 消息与 FirebaseanimatedList 一起滚动,而不是附加在顶部。
    • 有几种方法,我会通过更新评论来调整您的回复。
    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多