page method
void
page(
- dynamic page
Implementation
void page(dynamic page)
{
int currentPage = _controller!.page!.toInt() + 1;
int? pageNum = S.toInt(page);
int pages = widget.model.pages.length;
if (pageNum == null && page is String) {
switch (page.trim().toLowerCase()) {
case 'previous':
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();
if (diff > 9) {
_controller!.jumpToPage(pageNum - 1);
} else {
_controller!.animateToPage(pageNum - 1, duration: Duration(milliseconds: diff * 150), curve: Curves.easeInOutQuad);
}
}