我正在使用Flutter开发图书应用。我正在使用每一页的浏览量显示书页。问题是,当用户在最后一页上向左滑动时,我应该从数据库中加载下一章以及该章的标题。反之亦然,在上一章的首页上向右滑动即可。那么,如何在第一页或最后一页中找到该用户并向左或向右滑动呢?
最佳答案
您可以通过比较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();
}
}
);
每当我们向左或向右滚动时,我们都会检查我们要朝哪个方向滑动,以及是否在项目列表的末尾或开头。
每当我们滚动到新页面时,我们都会检查我们是否在项目的结尾或开头。
结合使用这些将给您所需的效果。
关于android - 网页浏览量波动: Find first and last page and swipe directions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55227030/