The current page displayed in the controlled PageView.
There are circumstances that this PageController can't know the current page. Reading page will throw an AssertionError in the following cases:
- No PageView is currently using this PageController. Once a PageView starts using this PageController, the new page position will be derived:
- First, based on the attached PageView's BuildContext and the position saved at that context's PageStorage if keepPage is true.
- Second, from the PageController's initialPage.
- More than one PageView using the same PageController.
The hasClients property can be used to check if a PageView is attached prior to accessing page.
Implementation
double? get page {
assert(
positions.isNotEmpty,
'PageController.page cannot be accessed before a PageView is built with it.',
);
assert(
positions.length == 1,
'The page property cannot be read when multiple PageViews are attached to '
'the same PageController.',
);
final _PagePosition position = this.position as _PagePosition;
return position.page;
}