如何在 PageView 的边缘禁用动画?

ale*_*kva 1 flutter

我希望用户在 PageView 中的页面之间滚动,但是当他们尝试在第一页之前和最后一页之后滚动时,我不想向他们显示动画。我可以在彩色动画、黑色动画和无滚动之间切换,但我根本找不到禁用动画的任何可能性。

如果没有这种可能性,我该如何更改该动画的颜色或至少使其透明?

Jos*_*man 6

根据您的截图,我可以说,你正在使用BouncingScrollPhysics你的PageView。此行为通常由 iOS 设备使用。尽管如此,我还查看了您在此处提供的整个源代码。

图像 1

什么地方出了错

您已添加PageView但没有在顶层附带ScaffoldMaterial小部件,这就是为什么 子项后面的背景PageView为黑色的原因。

图像 2

https://dartpad.dev/c709e410d0a68248ac5b387b3bc6af93

从文档:

Scaffold 实现了基本的 Material Design 视觉布局结构。

如果没有这个小部件,您会注意到您的应用程序可能会占据您设备的整个屏幕,包括通知栏,因为它 ( PageView) 不知道状态栏位于屏幕的哪个位置。

你可以做什么

我注意到,所有加入里面的孩子PageView有个别ScaffoldAppBar这不是真的有必要巢支架,您可能需要使用TabBarView替代PageView,并让父窗口部件处理AppBar通过改变TabController

但是,如果您认为重构会花费太多精力,请随时查看以下需要最少更改以满足您需求的选项:

选项 1.您可以将小部件包装在小Scaffold部件中。

https://dartpad.dev/4620ff91444353f5e000d2063594bd96

图 3

选项 2。鉴于嵌套Scaffold小部件不是一个好习惯,您可以只使用普通Material小部件将您PageView的孩子包裹在Scaffold小部件中。

https://dartpad.dev/43f8730e5592ce1f96193fc01f08a29c

这些解决方案会将背景颜色PageView从黑色更改为白色。

选项 3.如果你真的想摆脱动画,破解它的最简单方法是改变你的滚动物理:

physics: ClampingScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)

但是,当您尝试在屏幕末端滑动时,这仍然会产生发光或波纹效果。

为了进一步摆脱这种影响,我将与您分享这些 SO 答案:

进一步阅读

  • 如果您可以将 ClampingScrollPhysics 放在顶部,将会很有帮助,谢谢 (2认同)

归档时间:

查看次数:

1821 次

最近记录:

6 年 前