layoutText method

void layoutText({
  1. double minWidth = 0.0,
  2. double maxWidth = double.infinity,
  3. bool forceLayout = false,
})

Implementation

void layoutText(
    {double minWidth = 0.0,
    double maxWidth = double.infinity,
    bool forceLayout = false}) {
  if (textLayoutLastMaxWidth == maxWidth &&
      textLayoutLastMinWidth == minWidth &&
      !forceLayout) {
    return;
  }
  final bool widthMatters =
      softWrap || overflow == TextOverflow.ellipsis || isMultiline;
  final double availableMaxWidth = math.max(0.0, maxWidth - caretMargin);
  final double availableMinWidth = math.min(minWidth, availableMaxWidth);
  final double textMaxWidth =
      widthMatters ? availableMaxWidth : double.infinity;
  final double textMinWidth =
      forceLine ? availableMaxWidth : availableMinWidth;
  textPainter.layout(
    minWidth: textMinWidth,
    maxWidth: textMaxWidth,
  );
  textLayoutLastMinWidth = minWidth;
  textLayoutLastMaxWidth = maxWidth;
}