PageView以意外的顺序重建主窗口小部件



问题:我有一个包含3个页面的PageView:P1、P2、P3。当我在P3(或P2(上打开一个附加页面,然后关闭该附加页面时,PageView会重新构建,但会将P3作为第一页。新的断页顺序是P3、P2、P3。

如果我排除if (_page != 0 && position == 0) { return pageListTest[_page];},则P1将代替P3显示为position == 0,这是合乎逻辑的,但也不是期望的行为,因为P3应该再次显示。

这是我使用的代码:

body: (_page > 2) ? 
// if the page is not included in the page view
getPage(_page, arguments): 
//if the page is included in the page view 
ScrollConfiguration(
behavior: CustomScrollBehaviour(),
child: PageView.builder(
itemCount: 3,
controller: controller,
onPageChanged: (newPosition) {
bottomNavBarProvider.setPage(newPosition, newPosition);},
itemBuilder: (context, position) {
//Here is the problem: I navigate back therefore _page != 0 but position==0
if (_page != 0 && position == 0) {
return pageListTest[_page];}
return pageListTest[position];
})

有什么想法吗?谢谢:(

Check PageView类https://api.flutter.dev/flutter/widgets/PageView-class.html在那里,它说你需要创建一个页面控制器,并将页面添加为小部件的子级。此外,在定义pageView控制器之前,您必须设置哪个页面是第一个页面。

最新更新