带有NeverScrollableScrollPhysics的颤抖滚动GridView

时间:2019-02-07 14:59:52

标签: flutter

我的应用程序中有一个页面,如下图。顶部有一个容器。接下来是具有水平滚动的ListView。在PhysView设置为NeverScrollableScrollPhysics的GridView下方。后者是因为网格应随页面滚动,然后按page / infinite加载数据。 我尝试使用ScrollController,但不确定如何在此设置中正确连接它。 ListView和GridView具有单独的流,它们在其中侦听数据。我试图用ScrollController和侦听器在有状态小部件中创建GridView,但是激活滚动事件没有运气。是否应该以某种方式将其连接到页面滚动,因为我在网格上有NeverScrollableScrollPhysics?

enter image description here

更新: 我想我找到了解决方案。外部ListView有一个控制器,我将其设置为ScrollController。当大小接近网格大小时,我触发了侦听器加载更多网格项目。这样我可以保留GridView,否则我认为@Lucas的解决方案可能很好。根据文档,与SingleChildScrollView https://docs.flutter.io/flutter/widgets/SingleChildScrollView-class.html

相比,ListView的性能应更好。

1 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标。但是,以某种方式,您必须避免嵌套垂直滚动。

我将使用ListView.builder作为所有内容的父项,如果索引为0,则使用顶部Column和水平Container构建一个ScrollView,否则构建有两个孩子的Row(而不是GridView)。