flutter - Flutter:创建一个滚动视图,在允许列表滚动之前收缩中心项目
问题描述
我正在创建一个滚动视图,该视图用一些额外的空间垂直填充该中心项目。我想完成两件事:
1- 以用户移动手指的相同速率缩小中心项目的填充。例如,如果中心项目的填充是 50 像素并且用户将手指移动了 10 像素,那么我想将填充减少到 40。
2-我想停止列表视图实际滚动,直到中心项的填充为 0。一旦中心项的填充为 0,列表视图应该正常滚动。
我在这里有点迷路了。我一直在尝试实现我自己的 ScrollController 和 ScrollPhysics,但我无法完全实现我正在寻找的东西。我还看到 Flutter 中有一个名为 ScrollPosition 的类,它控制每个滚动小部件的位置,但我无法弄清楚如何使用它们来完成我正在寻找的行为。
有人能指出我正确的方向吗?
解决方案
更改physics
ListView 的属性,NeverScrollablePhysics()
不允许滚动。
也许使用 aGestureDetector
来检测滑动。
不过要小心这个小部件的位置。它会干扰 listView 的正常滚动。
尝试使用animationController
而不是多次调用 setState() 进行试验,只是为了更改填充而多次刷新屏幕是很浪费的。
推荐阅读
- ios - 对 Delphi 的 Objective-c 完成处理程序
- python - Kivy倒计时应用程序
- javascript - 如何在 jQuery 中使用 HTML 模板标签?
- jquery - 如何使插入的项目可排序
- python - 为嵌套列表的每个元素添加前缀和后缀
- c# - Asp.net MVC 表单身份验证应用程序转换为 Azure Active Directory
- python - 在 Atom 中,是否有一个包可以将长方法调用自动格式化为多行?
- javascript - innerText 在创建元素后直接设置后不显示
- javascript - 用承诺的数据更新 React 中的动态 TD 单元
- java - 任何人都知道为什么 setCount() 在 twitter4j 中不起作用?