如何防止水平ListView中的项被拉伸

11

我在Column组件内部放置了一个横向的ListView,

这个ListView要渲染100 x 100个条目,并且稍后我想将它们的高度动画变为200。

我将ListView包装在一个高度为200的Container中,否则会出现错误并且代码无法运行。

现在的问题是列表项正在将其高度拉伸到200。有没有办法阻止这种行为,我尝试过对齐但它没有起作用。以下是到目前为止的代码:

Scaffold(
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              height: 200,
              child: ListView(
                scrollDirection: Axis.horizontal,
                children: <Widget>[
                  CCard(),
                  CCard(),
                  CCard(),
                  CCard(),
                  CCard(),
                ],
              ),
            ),
          ],
        ));

而且列表项

class CCard extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.symmetric(horizontal: 8.0),
      height: 100,
      width: 100,
      color: Colors.red[200],
    );
  }
}
1个回答

27

尝试将您的Container包裹在AlignCenter中,像这样:

            class CCard extends StatelessWidget {
              @override
              Widget build(BuildContext context) {
                return Center(
                  child: Container(
                    margin: EdgeInsets.symmetric(horizontal: 8.0),
                    height: 100,
                    width: 100,
                    color: Colors.red[200],
                  ),
                );
              }
            }

更多信息:https://docs.flutter.io/flutter/widgets/Container-class.html


我不知道为什么以前没有想到这个,哈哈,谢谢你的帮助。 - Haythem Farhat

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