builder method

List<Widget> builder(
  1. BuildContext context,
  2. BoxConstraints constraints
)

Implementation

List<Widget> builder(BuildContext context, BoxConstraints constraints) {

  List<Widget> list = [];

  // create page view
  if (pageView == null) {

    // Build Pages
    _pages = [];
    for (PageModel model in widget.model.pages) {
      var view = model.getView();
      _pages.add(view);
    }

    pageView = PageView.builder(
        controller: _controller,
        itemBuilder: buildPage,
        itemCount: _pages.length,
        onPageChanged: (int page) => widget.model.currentpage = page + 1);
  }

  list.add(pageView!);

  // create pager
  if (pager == null && widget.model.pager) {

    pager = DotsIndicator(
        controller: _controller!,
        itemCount: _pages.length,
        color:
        widget.model.color ?? Theme.of(context).colorScheme.onSurface,
        onPageSelected: (int page) =>
            pageTo(page + 1, widget.model.transition));

    pager = PositionedModel(widget.model, null, bottom: 8, child: pager!).getView();
  }

  if (pager != null) {
    list.add(pager!);
  }

  // create busy indicator
  if (busy == null) {
    var model = BusyModel(widget.model,
        visible: widget.model.busy, observable: widget.model.busyObservable);
    busy = model.getView();
  }
  list.add(busy!);

  return list;
}