问题:我有一个包含 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];
})
有任何想法吗?谢谢 :)