dartflutterpageviews

How to get from index in PageView onPageChanged in Flutter?


How do I get the previous index in PageView onPageChanged? Currently, I can get the current index when the page changes with the following code:

PageView(
      children: <Widget>[
        SomeView(),
        SomeOtherViews(),
        SomeOtherViews(),
      ],
      controller: _pageViewController,
      onPageChanged: _onPageViewChange,
    );

_onPageViewChange(int page) {   
    print("Current Page: " + page.toString());
  }

Does flutter have any built-in function for this? Or should I just manually save the page as reference for the previous page?


Solution

  • Decrement page by 1 and store in a class Variable (call setState & modify) or local variable. If current-page is 0 set previousPage to totalPageCount - 1.

    _onPageViewChange(int page) {   
      print("Current Page: " + page.toString());
      int previousPage = page;
      if(page != 0) previousPage--;
      else previousPage = 2;
      print("Previous page: $previousPage");
    }