如何在Flutter中使ListView的子项在固定高度的容器内占满所有空间?

3

我在ListView.separated中遇到了问题,无法使其中的所有项适应Container中可用的所有空间,并且每个项的高度相同。

class DailyWeatherListCardWidget extends StatelessWidget {
  const DailyWeatherListCardWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      height: 300,
      alignment: Alignment.center,
      padding: const EdgeInsets.all(8.0),
      decoration: BoxDecoration(
        color: const Color.fromRGBO(112, 176, 250, 1),
        borderRadius: BorderRadius.circular(20),
      ),
      child: Column(
        children: [
          ListView.separated(
            separatorBuilder: ((context, index) => const Divider()),
            itemCount: 7,
            itemBuilder: (context, index) {
              return DailyWeatherCardWidget();
            },
          ),
        ],
      ),
    );
  }
}

class DailyWeatherCardWidget extends StatelessWidget {
  const DailyWeatherCardWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      child: Row(
        children: const [
          Expanded(
            child: Padding(
              padding: EdgeInsets.only(left: 12.0),
              child: Text("Day"),
            ),
          ),
          Icon(
            Icons.water_drop,
            size: 18,
          ),
          Padding(
            padding: EdgeInsets.only(right: 12.0),
            child: Text("50%"),
          ),
          Padding(
            padding: EdgeInsets.only(right: 12.0),
            child: Icon(
              Icons.sunny,
              size: 18,
            ),
          ),
          Padding(
            padding: EdgeInsets.only(right: 12.0),
            child: Icon(
              Icons.cloud,
              size: 18,
            ),
          ),
          Padding(
            padding: EdgeInsets.only(right: 12.0),
            child: Text("29° 20°"),
          ),
        ],
      ),
    );
  }
}

这是我的代码。我希望在ListView.separated中生成的项目具有相同的大小并在Container内平均显示,占用其所有空间,但我不知道该怎么做。我尝试了很多不同的方法,比如将ListView.separated包装在Expanded widget或Flexible Widget中。有谁知道我该怎么做吗?

1个回答

1
在您的列表视图中添加scrollDirection: Axis.horizontal。

没有起作用,但我解决了这个问题。因为我知道会有多少个项目(总是七个),所以我可以只用一个列来代表子项。不需要使用ListView,因为它无法滚动也不会增长。 - bringand1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接