Как получить из индекса в PageView onPageChanged во Flutter? - PullRequest
0 голосов
/ 27 марта 2019

Как мне получить предыдущий индекс в PageView onPageChanged?В настоящее время я могу получить текущий индекс при изменении страницы с помощью следующего кода:

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

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

Есть ли в флаттере встроенная функция для этого?Или я должен просто вручную сохранить страницу как ссылку для предыдущей страницы?

  • Да, я думал об этом, я просто хочу знать, есть ли более быстрый способ без создания переменной

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Вы можете использовать PageView.builder, он даст вам индекс страницы.

PageView.builder(
  itemBuilder: (context, index) {
    // index gives you current page position.
    return _buildPage();
  },
  itemCount: listItemCount, // Can be null
)
0 голосов
/ 27 марта 2019

Уменьшение страницы на 1 и сохранение в переменной класса (вызов setState & modify) или локальной переменной.Если для текущей страницы задано значение 0, установите для previousPage значение totalPageCount - 1.

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