FittedTextFieldMeasurer.create constructor

FittedTextFieldMeasurer.create(
  1. TextField textField,
  2. TextStyle? textStyle
)

Implementation

factory FittedTextFieldMeasurer.create(
    TextField textField, TextStyle? textStyle) {
  final prefixWidth = _getPrefixTextSize(textField, textStyle).width;
  final suffixWidth = _getSuffixTextSize(textField, textStyle).width;
  final hintWidth = _getHintTextSize(textField, textStyle).width;
  final labelWidth = _getLabelTextSize(textField, textStyle).width;
  final paddingWidth = textField.decoration!.contentPadding != null
      ? textField.decoration!.contentPadding!.collapsedSize.width
      : 0;
  // Add enough space for the cursor to prevent it being positined onto the
  // next line in a multiline textfield and scrolled in a single-line text
  // field
  final cursorWidth = textField.cursorWidth + 1;

  return FittedTextFieldMeasurer._(
    textField: textField,
    textStyle: textStyle,
    hintWidth: hintWidth,
    labelWidth: labelWidth,
    fixedWidths: prefixWidth + suffixWidth + paddingWidth + cursorWidth,
  );
}