
我正在创建一个滚动视图,在垂直方向上用一些额外的空间填充中心项目。我想完成两件事:
1-以用户移动手指的相同速度缩小中心项目的填充。例如,如果中心项目的填充是50像素,而用户将手指移动了10个像素,那么我想将填充减少到40。
2-我想停止列表视图的实际滚动,直到中心项的填充为0。一旦中心项的填充为0,列表视图就会像往常一样滚动。
我有点迷路了。我一直在尝试实现我自己的ScrollController和ScrollPhysics,但是我还没能实现我想要的东西。我还看到在Flutter中有一个名为ScrollPosition的类,它控制每个滚动小部件的位置,但我还没有弄清楚如何使用这些类来实现我正在寻找的行为。
有人能给我指个方向吗?
发布于 2020-07-30 20:15:01
更改ListView的physics属性,NeverScrollablePhysics()不允许滚动。
也许可以使用GestureDetector来检测滑动。
不过,要注意这个小部件的位置。它可能会干扰listView的正常滚动。
尝试使用animationController而不是多次调用setState(),多次刷新屏幕只是为了更改填充,这是浪费的。
https://stackoverflow.com/questions/63163300
复制相似问题