0

问题:我有一个包含 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];
})

有任何想法吗?谢谢 :)

4

1 回答 1

1

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

于 2020-12-11T18:51:25.347 回答