如何使容器高度匹配子列表查看商品尺寸

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

我构建了包含小部件的多个部分的应用程序主屏幕,并且基本上大部分是具有不同大小的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个回答
0
投票

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

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

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

快乐编码!GS

© www.soinside.com 2019 - 2024. All rights reserved.