performLayout method

  1. @override
Size performLayout(
  1. BoxConstraints constraints
)
override

Hook for subclasses to perform layout within the given constraints.

Implementation

@override
Size performLayout(BoxConstraints constraints) {
  final paginator = widget as Paginator;
  if (paginator.totalPages <= 0) return constraints.constrain(Size.zero);

  final dotChars = paginator.activeDot.characters;
  final inactiveDotChars = paginator.inactiveDot.characters;
  final separatorChars = paginator.separator.characters;

  var w = 0;
  for (var i = 0; i < paginator.totalPages; i++) {
    final isCurrent = i == paginator.currentPage;
    w += isCurrent ? dotChars.length : inactiveDotChars.length;
    if (i < paginator.totalPages - 1) {
      w += separatorChars.length;
    }
  }
  return constraints.constrain(Size(w, 1));
}