web-dev-qa-db-ja.com

PageViewの初期ページをFlutterに設定する方法

私はそれに4ページのPageViewを持っています。 3番目のページで始めたいです。つまり、ユーザーがスクロールしたときにユーザーがスクロールしたときに利用可能な2ページがあることを意味します。

私は試した:

home: PageView(
   controller: MyPageController(),
   children: [Page1(), Page2(), Page3(), Page4()],
   scrollDirection: Axis.vertical,
),
 _

と:

class MyPageController extends PageController {
   @override
   int get initialPage => 3;
}
 _

残念ながら、それは私を助けません。

11
Christian

初期ページを設定する必要があります。

PageController _controller = PageController(initialPage: 0);
 _
1
ChyperX

PageControllerの初期化initialPageの初期化は、多数のページでは機能しませんでした。私はまた、あなたが直接望ましいページに着陸したいのであれば、望ましくないアニメーションをスクロールすることに気づいた。

私は後に従っていました

  PageController _pageViewController = PageController();

  @override
  void initState() {
    super.initState();
  }

  @override
  void didChangeDependencies() {
    
    WidgetsBinding.instance.addPostFrameCallback((_) {

      if (_pageViewController.hasClients)
        _pageViewController.jumpToPage(3);

    });

    super.didChangeDependencies();
  }

 _
0
bikram