我有一个3页的PageView(初始页:0)。我打算做的是创建一个带有后退按钮的3部分页面,该页面仅在初始页面中不显示。
用于从初始页面导航到其他页面的代码。 (工作没有问题)
pageController.animateToPage(1,
duration: Duration(milliseconds: 500),
curve: Curves.easeIn);
}),
[easeIn动画,持续时间500ms]
后退按钮使用的代码
pageController.animateToPage(pageController.initialPage,
duration: Duration(milliseconds: 500),
curve: Curves.elasticInOut
);
[elasticInOut动画,持续时间500ms]
当尝试从第(2)页返回到第(0)页时,此方法不起作用,但是在从第(1)页返回到第(0)页时,效果很好。
什么似乎可以解决?
这是Flutter的已知限制吗?还是我做错了什么?
答案 0 :(得分:0)
我认为,任何最初产生负值的曲线都会发生这种情况(例如Curves.elasticInOut)。我无法查明确切的行(我怀疑它在ScrollPositionWithSingleContext的applyUserOffset中),但是负值似乎被视为动画已完成。偶尔可能会使用较小/较快的动画来产生“负值较小”(或足够接近零)的值。
Curves.linear或Curves.ease *不会产生负值,因此它们应该保持一致。