我的应用程序中有一个页面,如下图所示。顶部有一个容器。接下来是一个带水平滚动的ListView。在GridView下面,物理设置为NeverScrollableScrollPhysics。后者是因为网格应该与页面一起滚动,然后按页面/无限加载数据。我尝试使用ScrollController但不确定如何在此设置中正确连接它。 ListView和GridView具有单独的流,用于监听数据。我试图在带有ScrollController和监听器的Stateful小部件中创建GridView,但没有运气激活滚动事件。它应该以某种方式连接到页面滚动因为我在网格上有NeverScrollableScrollPhysics吗?
更新:我想我找到了解决方案。外部ListView有一个控制器,我设置为ScrollController。我是监听器,当大小几乎是网格的大小时,我会触发加载更多的网格项。这样我可以保留GridView,否则我认为@Lucas的解决方案可能会很好。根据文档,与SingleChildScrollView https://docs.flutter.io/flutter/widgets/SingleChildScrollView-class.html相比,ListView应该表现更好
有很多方法可以实现这一目标。但不知何故,你必须避免嵌套垂直滚动。
我会使用ListView.builder
作为所有内容的父级,如果索引为0,使用顶部Column
和水平Container
构建一个ScrollView
,否则用两个孩子(这而不是Row
)构建一个GridView
。