Flutter:在允许列表滚动之前创建一个收缩中心项目的滚动视图
Flutter: Creating a scroll view that contracts center item before allowing the list to scroll
我正在创建一个滚动视图,用一些额外的 space 垂直填充该中心项目。我想完成两件事:
1- 以用户移动手指的相同速率缩小中心项目的填充。例如,如果中心项目的内边距为 50 像素,而用户将手指移动了 10 像素,那么我想将内边距减少到 40。
2- 我想阻止列表视图实际滚动,直到中心项目的填充为 0。一旦中心项目的填充为 0,列表视图应正常滚动。
我有点迷路了。我一直在尝试实现我自己的 ScrollController 和 ScrollPhysics,但我一直无法实现我正在寻找的东西。我还看到 Flutter 中有一个名为 ScrollPosition 的 class 控制每个滚动小部件的位置,但我一直无法弄清楚如何使用它们来完成我正在寻找的行为。
有人能给我指出正确的方向吗?
修改ListView的physics
属性,NeverScrollablePhysics()
不允许滚动
也许使用 GestureDetector
来检测滑动。
不过请注意此小部件的放置。
它会干扰 listView 的正常滚动。
尝试使用 animationController
进行试验,而不是多次调用 setState(),
多次刷新屏幕只是为了改变padding太浪费了。
我正在创建一个滚动视图,用一些额外的 space 垂直填充该中心项目。我想完成两件事:
1- 以用户移动手指的相同速率缩小中心项目的填充。例如,如果中心项目的内边距为 50 像素,而用户将手指移动了 10 像素,那么我想将内边距减少到 40。
2- 我想阻止列表视图实际滚动,直到中心项目的填充为 0。一旦中心项目的填充为 0,列表视图应正常滚动。
我有点迷路了。我一直在尝试实现我自己的 ScrollController 和 ScrollPhysics,但我一直无法实现我正在寻找的东西。我还看到 Flutter 中有一个名为 ScrollPosition 的 class 控制每个滚动小部件的位置,但我一直无法弄清楚如何使用它们来完成我正在寻找的行为。
有人能给我指出正确的方向吗?
修改ListView的physics
属性,NeverScrollablePhysics()
不允许滚动
也许使用 GestureDetector
来检测滑动。
不过请注意此小部件的放置。 它会干扰 listView 的正常滚动。
尝试使用 animationController
进行试验,而不是多次调用 setState(),
多次刷新屏幕只是为了改变padding太浪费了。