問題: P1、P2、P3 の 3 つのページを持つ PageView があります。P3 (または P2) で追加のページを開き、その追加のページを閉じると、PageView は再構築されますが、P3 が最初のページになります。新しい壊れたページの順序は P3、P2、P3 です。
除外するif (_page != 0 && position == 0) { return pageListTest[_page];}
と、P3 の代わりに P1 が表示されます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];
})
何か案は?ありがとう :)