我希望用户在 PageView 中的页面之间滚动,但是当他们尝试在第一页之前和最后一页之后滚动时,我不想向他们显示动画。我可以在彩色动画、黑色动画和无滚动之间切换,但我根本找不到禁用动画的任何可能性。
如果没有这种可能性,我该如何更改该动画的颜色或至少使其透明?
根据您的截图,我可以说,你正在使用BouncingScrollPhysics你的PageView。此行为通常由 iOS 设备使用。尽管如此,我还查看了您在此处提供的整个源代码。
什么地方出了错
您已添加PageView但没有在顶层附带Scaffold或Material小部件,这就是为什么 子项后面的背景PageView为黑色的原因。
https://dartpad.dev/c709e410d0a68248ac5b387b3bc6af93
从文档:
Scaffold实现了基本的 Material Design 视觉布局结构。
如果没有这个小部件,您会注意到您的应用程序可能会占据您设备的整个屏幕,包括通知栏,因为它 ( PageView) 不知道状态栏位于屏幕的哪个位置。
你可以做什么
我注意到,所有加入里面的孩子PageView有个别Scaffold及AppBar,这不是真的有必要巢支架,您可能需要使用TabBarView替代PageView,并让父窗口部件处理AppBar通过改变TabController。
但是,如果您认为重构会花费太多精力,请随时查看以下需要最少更改以满足您需求的选项:
选项 1.您可以将小部件包装在小Scaffold部件中。
https://dartpad.dev/4620ff91444353f5e000d2063594bd96
选项 2。鉴于嵌套Scaffold小部件不是一个好习惯,您可以只使用普通Material小部件将您PageView的孩子包裹在Scaffold小部件中。
https://dartpad.dev/43f8730e5592ce1f96193fc01f08a29c
这些解决方案会将背景颜色
PageView从黑色更改为白色。
选项 3.如果你真的想摆脱动画,破解它的最简单方法是改变你的滚动物理:
physics: ClampingScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)
但是,当您尝试在屏幕末端滑动时,这仍然会产生发光或波纹效果。
为了进一步摆脱这种影响,我将与您分享这些 SO 答案:
进一步阅读
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |