Перевернутая страница просмотра: найти первую и последнюю страницу и пролистать направления

Может быть выполнено с использованием идентификатораHashMap, подвергнутого условию, что сравнение ключей будет выполняться оператором ==, а не equals ().

-1
задан Tanveer Munir 19 March 2019 в 12:45
поделиться

1 ответ

Вы можете проверить, является ли это последней из первой страницы, сравнив 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();
    }
  }
);

Всякий раз, когда мы прокручиваем влево или вправо, мы проверяем, в каком направлении мы проводим, и находимся ли мы в конце или в начале списка элементов.

Всякий раз, когда мы прокручиваем на новую страницу, мы проверяем, находимся ли мы в конце или в начале пунктов.

Сочетая их, вы получите желаемый эффект.

0
ответ дан Joel Broström 19 March 2019 в 12:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: