我的可滚动列表视图有什么问题?

What is wrong with my scrollable listview?

Flutter 新手,尝试制作包含长列表视图的可滚动页面。我尝试了一些我在不同 SO 页面上阅读过的不同内容,因此我的代码可能看起来很臃肿。我不确定为什么即使页面显示正常,最后一个 ListTile 的图像也出现了,但我无法向下滚动屏幕以查看该图像的其余部分。

class About extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.amberAccent,
        appBar: AppBar(
          title: Text('About this App'),
          backgroundColor: Colors.lightGreen[400],
          centerTitle: true,
        ),
        body: SingleChildScrollView(
            scrollDirection: Axis.vertical,
            child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: <Widget>[
                  Text(
                      'The following people helped made my first app possible:',
                      textAlign: TextAlign.center,
                      style: TextStyle(
                          fontSize: 20,
                          color: Colors.black,
                          fontWeight: FontWeight.bold)),
                  ListView(
                    shrinkWrap: true,
                    padding: EdgeInsets.all(15.0),
                    children: <Widget>[
                      ListTile(
                        leading: Text('Me'),
                        title: Text(
                            'a little about myself'),
                      ),
                      ListTile(
                        leading: Text('Coworker'),
                        title: Text(
                            'Contribution made by coworker'),
                      ),
                      ListTile(
                        leading: Text('Friend'),
                        title: Text(
                            'Message about friend'),
                      ),
                      ListTile(
                        title: SizedBox(
                            height: 500.0,
                            width: 500.0,
                            child: Image.asset('images/friend.jpeg')),
                      ),
                    ],
                  ),
                ])));
  }
}```

在您的列表视图中使用 physics: ScrollPhysics(), 以获得更详细的答案,请参阅下面的 link

问题是您将无限高的 ListView 放在高度有限的 Column 小部件中,因此 ListView 不知道如何呈现自身。

由于滚动功能,ListView 具有无限高度,因此它可以滚动无限数量的项目。

Column有高度限制,所有可用的屏幕高度,所以限制在这个高度。

最简单的解决方案之一是将 ListView 包装在 Expanded 小部件中,以告诉 ListView 仅采用所有可用高度,这就是 Expanded 小部件做。

如果以后有人遇到和我一样的问题,这就是我修复代码的方法:

对于子ListView,使用参数:

shrinkWrap: true,
physics: ClampingScrollPhysics(),