buildTextSpan method

  1. @override
TextSpan buildTextSpan({
  1. required BuildContext context,
  2. TextStyle? style,
  3. required bool withComposing,
})
override

Builds TextSpan from current editing value.

By default makes text in composing range appear as underlined. Descendants can override this method to customize appearance of text.

Implementation

@override
TextSpan buildTextSpan({
  required BuildContext context,
  TextStyle? style,
  required bool withComposing,
}) {
  assert(
    !value.composing.isValid || !withComposing || value.isComposingRangeValid,
  );

  final intValue = int.tryParse(value.text);
  if (intValue == null) return const TextSpan();

  return TextSpan(
    style: style,
    children: [
      if (value.text.length == 1 && intValue < 10) const TextSpan(text: '0'),
      TextSpan(text: text),
    ],
  );
}