繁体   English   中英

Flutter 页面查看如何不总是从初始页面开始?

[英]Flutter Page View how to not always start at the initialPage?

听起来可能很复杂,但我试图解释我想要做什么

我有一个包含不同页面的页面视图以及另一个像这样的页面视图:

PageView(
  controller: pageController,
  physics: NeverScrollableScrollPhysics(),
  children: [FirstPage(), 
             SecondPage(), 
             SmallPageView(), 
             ThirdPage()])

虽然这按预期工作,但存在一个问题: SmallPageView()有 4 个页面。 当我浏览它的页面时,我在ThirdPage()并按下返回按钮,它调用:

pageController.previousPage(duration: Duration(milliseconds: 400), curve: Curves.ease);

我再次在第 1 页的SmallPageView()中。 这是有道理的,因为它是pageControllerinitialPagepreviousPage 但是,当我在ThirdPage()并按下后退按钮时,我想 go 到SmallPageView()最后一页,这显然更直观

我试着做类似的事情

pageController.previousPage(duration: Duration(milliseconds: 400), curve: Curves.ease);
smallPageViewControllerHouse.jumpToPage(4);

哪个不起作用,我想看起来很难看。

我也无法将变量分配给 controller 的 initialPage 以动态更改它。 有没有办法“记住”页面视图的位置,而不是每次都从初始页面开始?

当然,您可以争论只解决SmallPageView()并将其 4 个页面放入PageView()而不是嵌套的页面视图。 但这是一个设计解决方案,为了实现我想要的外观,除了使用嵌套页面视图之外,没有其他方法(据我所知 atm)

尝试使用 IndexedStack,indexedstack 内的页面浏览将保持它的 state

IndexedStack(
  index: _currentIndex,
  children: [FirstPage(), 
             SecondPage(), 
             SmallPageView(), 
             ThirdPage()])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM