page property

double? page

The current page displayed in the controlled PageView.

There are circumstances that this ExtendedPageController can't know the current page. Reading page will throw an AssertionError in the following cases:

  1. No PageView is currently using this ExtendedPageController. Once a PageView starts using this ExtendedPageController, the new page position will be derived:
  1. More than one PageView using the same ExtendedPageController.

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 ExtendedPagePosition position = this.position as ExtendedPagePosition;
  return position.page;
}