pageTo method
void
pageTo(
- dynamic page,
- String transition
)
Implementation
void pageTo(dynamic page, String transition) {
int currentPage = _controller!.page!.toInt() + 1;
int? pageNum = toInt(page);
int pages = widget.model.pages.length;
if (pageNum == null && page is String) {
switch (page.trim().toLowerCase()) {
case 'previous':
case 'prev':
pageNum = currentPage - 1;
if (pageNum < 1) pageNum = pages;
break;
case 'next':
pageNum = currentPage + 1;
if (pageNum > pages) pageNum = 1;
break;
case 'first':
pageNum = 1;
break;
case 'last':
pageNum = pages;
break;
default:
break;
}
}
pageNum ??= 1;
if (pageNum > pages) pageNum = 1;
if (pageNum < 1) pageNum = pages;
int diff = (currentPage - pageNum).abs();
// jump to page
if (transition == "jump") {
_controller!.jumpToPage(pageNum - 1);
}
// animate to page
else {
_controller!.animateToPage(pageNum - 1,
duration: Duration(milliseconds: diff * 150),
curve: Curves.easeInOutQuad);
}
}