Может быть выполнено с использованием идентификатораHashMap, подвергнутого условию, что сравнение ключей будет выполняться оператором ==, а не equals ().
Вы можете проверить, является ли это последней из первой страницы, сравнив onPageChanged
методы index
с вашим collection.length
, например, так:
PageView(
onPageChanged: (index) {
if (index + 1 == myCollection.length) {
loadNextChapter();
} else if (index == 0) {
loadPreviousChapter();
}
},
);
Редактировать 1:
Используя GestureDetector:
PageView mPageView = PageView(
onPageChanged: (index) {
if (index + 1 == myCollection.length) {
hasReachedEnd = true;
} else if (index == 0) {
hasReachedFirst = true
} else {
hasReachedFirst = false
hasReachedEnd = false
}
},
);
GestureDetector mGestureDetector = GestureDetector(
child: mPageView
onHorizontalDragEnd: (dragEndDetails) {
if (dragEndDetails.primaryVelocity < 0 && hasReachedStart) {
loadPreviousChapter(); //if you want to go to the next page once fetched you can do so by adding .then()
} else if (dragEndDetails.primaryVelocity > 0 && hasReachedEnd) {
loadNextChapter();
}
}
);
Всякий раз, когда мы прокручиваем влево или вправо, мы проверяем, в каком направлении мы проводим, и находимся ли мы в конце или в начале списка элементов.
Всякий раз, когда мы прокручиваем на новую страницу, мы проверяем, находимся ли мы в конце или в начале пунктов.
Сочетая их, вы получите желаемый эффект.