【问题标题】:How to make container height match the child listView item size如何使容器高度与子列表视图项大小匹配
【发布时间】:2019-10-05 08:21:04
【问题描述】:

我构建了我的应用程序 homeScreen,其中包含小部件的多个部分,其中大部分基本上是不同大小的 listView,我将它们全部放在列小部件中。

问题是这个listView实际上来自streamBuilder,所以列表中的内容是动态的(来自firebase),所以有时它会包含5个项目或0个项目。

据我所知,当我一般使用 streambuilder 或 listview 时,我需要将这个小部件扭曲到具有预定义高度的容器中,如果 listview 项目只有 1 个并且我将高度预定义为 5 个项目,那么它将显示一个没有任何东西的大空白(因为容器用于 5 个项目,但对于该用户,他/她只有 1 个项目)

Container(
  height: screenHeight * 0.4,
  child: StreamBuilder<List<Place>>(
    stream: database.placesStream(),
    builder: (context, snapshot) {
      return ListItemsBuilderNoScroll<Place>(
        snapshot: snapshot,
        itemBuilder: (context, place) => _buildPlaceList(screenWidth, screenHeight, place),
      );
    },
  ),
),

那么如何解决这个问题,还是我在这种情况下使用了错误的小部件?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    这似乎是一个合法问题,但更多的是逻辑问题而不是设计问题。默认情况下,您可以检查正在收听的流上可用的数据,而不是直接构建列表视图。设置一个标志或其他东西,在此基础上您决定是否构建要显示的列表视图。

    此外,一旦获取了需要在列表视图中显示的列表,您还可以通过检查列表长度来更改容器的大小。

    无论如何,这是一个七个月前的问题,希望您已经找到了解决问题的方法。

    编码愉快! GS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多