首页 > 解决方案 > Flutter:创建一个滚动视图,在允许列表滚动之前收缩中心项目

问题描述

在此处输入图像描述

我正在创建一个滚动视图,该视图用一些额外的空间垂直填充该中心项目。我想完成两件事:

1- 以用户移动手指的相同速率缩小中心项目的填充。例如,如果中心项目的填充是 50 像素并且用户将手指移动了 10 像素,那么我想将填充减少到 40。

2-我想停止列表视图实际滚动,直到中心项的填充为 0。一旦中心项的填充为 0,列表视图应该正常滚动。

我在这里有点迷路了。我一直在尝试实现我自己的 ScrollController 和 ScrollPhysics,但我无法完全实现我正在寻找的东西。我还看到 Flutter 中有一个名为 ScrollPosition 的类,它控制每个滚动小部件的位置,但我无法弄清楚如何使用它们来完成我正在寻找的行为。

有人能指出我正确的方向吗?

标签: flutterlistviewcustomscrollview

解决方案


更改physicsListView 的属性,NeverScrollablePhysics()不允许滚动。

也许使用 aGestureDetector来检测滑动。

不过要小心这个小部件的位置。它会干扰 listView 的正常滚动。

尝试使用animationController而不是多次调用 setState() 进行试验,只是为了更改填充而多次刷新屏幕是很浪费的。


推荐阅读