gpt4 book ai didi

flutter - 按下后退按钮时如何在PageView中向后移动[Flutter]

转载 作者:IT老高 更新时间:2023-10-28 12:46:10 25 4
gpt4 key购买 nike

我想在使用 pageView 按下后退按钮时向后移动,我阅读了有关 WillPopScope 组件的信息,但我没有插入/弹出另一个屏幕。我只是在 pageView 的不同页面中移动。

有什么办法吗?

最好的问候。

最佳答案

是的,您可以使用 WillPopScope 来实现。虽然不确定这是否是最佳选择,但它对我来说非常有效;请记住,我希望后退按钮从其中一页到前一页起作用,而不是在所有页面上起作用,但我确信该解决方案适用。

在页面中,我像这样用 WillPopScope 包围了所有内容

return new WillPopScope(
onWillPop: () => Future.sync(onWillPop),
child: // Whatever your page was

现在,你必须定义 proc onWillPop,在我的例子中是这样的

bool onWillPop() {
_controller.previousPage(
duration: Duration(milliseconds: 200),
curve: Curves.linear,
);
return false;
}

在我的例子中,这永远不会失败,因为它只在一个 View 中使用,而且只有一个。

你的情况,你可能想要这样的条件:

bool onWillPop() {
if (_controller.page.round() == _controller.initialPage)
return true;
else {
_controller.previousPage(
duration: Duration(milliseconds: 200),
curve: Curves.linear,
);
return false;
}
}

希望这会有所帮助。有关覆盖后退按钮的一般引用,请参阅 other StackOverFlowAnswer.

编辑:向我的 onWillPop 添加了一个返回值以删除飞镖警告。

关于flutter - 按下后退按钮时如何在PageView中向后移动[Flutter],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51507960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com