我的情况有点乏味。我正在向导航器推送 2 页
甲乙
B 被推到最后。
由于某些原因。我不想弹出 B 从 B 导航到 A。我想替换/交换它们。原因在于国家。我想保留 A 和 B 页面的状态,因为有些小部件的构建成本非常高(Unity 视图小部件)。从 B 如何使用 Navigator 以便在不破坏我的页面的情况下我可以将 B 与 A 交换?
这是流程:
A 作为默认页面打开。
B被推
Navigator.of(context).pushNamed();
页面堆栈是 A - B
从 BI 想要导航到 A 同时仍然保持 B 页面活着。
-经过一些神奇的操作后,我失踪了 -
页面堆栈是 B - A。用户看到页面 A。没有页面被破坏。他们被交换了。
有没有办法在 Flutter 中做到这一点?
您可以使用PageView简单的方法并像这样设置配置:
PageController _pagerController = PageController(keepPage: true);
PageView(
physics: NeverScrollableScrollPhysics(),
controller: _pagerController,
children: [
Page_A(),
Page_B(),
],
),
Run Code Online (Sandbox Code Playgroud)
对于页面之间的切换:
goNextPage() {
_pagerController.animateToPage(
currentPage + 1,
duration: Duration(milliseconds: 500),
curve: Curves.ease,
);
}
goPrevPage() {
_pagerController.animateToPage(
currentPage - 1,
duration: Duration(milliseconds: 500),
curve: Curves.ease,
);
}
Run Code Online (Sandbox Code Playgroud)
我希望它对你有用。
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |