#dart #flutter #pageviews
#dart #flutter #просмотры страниц
Вопрос:
Как мне получить предыдущий индекс в PageView onPageChanged в Flutter? В настоящее время я могу получить текущий индекс при изменении страницы с помощью следующего кода:
PageView(
children: <Widget>[
SomeView(),
SomeOtherViews(),
SomeOtherViews(),
],
controller: _pageViewController,
onPageChanged: _onPageViewChange,
);
_onPageViewChange(int page) {
print("Current Page: " page.toString());
}
Есть ли у flutter какая-либо встроенная функция для этого? Или я должен просто вручную сохранить страницу в качестве ссылки на предыдущую страницу?
- Да, я думал об этом, я просто хочу знать, есть ли более быстрый способ без необходимости создавать переменную
Ответ №1:
Уменьшите страницу на 1 и сохраните в переменной класса (вызовите setState amp; 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");
}
Ответ №2:
Вы можете использовать PageView.builder, это даст вам индекс страницы.
PageView.builder(
itemBuilder: (context, index) {
// index gives you current page position.
return _buildPage();
},
itemCount: listItemCount, // Can be null
)