How to capitialize first letter of TextFormField in flutter

Question

Asked by TimeToCode on November 16, 2021 (source).

I'm trying to capitialize the first letter of Textformfield, for this i'm using the

textCapitalization: TextCapitalization.words,

but it's not working for Textformfield, and works for textfield

please help how to do this.

Answer

Question answered by Jahidul I (source).

You can try with formatter for upper case, in TextFormField you just use UpperCaseTextFormatter class in input formatters section

TextFormField(
            controller: _textEditingController,
            inputFormatters: <TextInputFormatter>[
              UpperCaseTextFormatter()
            ],
          )

Upper text formatter

class UpperCaseTextFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    return TextEditingValue(
      text: capitalize(newValue.text),
      selection: newValue.selection,
    );
  }
}
String capitalize(String value) {
  if(value.trim().isEmpty) return "";
  return "${value[0].toUpperCase()}${value.substring(1).toLowerCase()}";
}

output:

enter image description here

CAPITALIZATION FLUTTER FLUTTER-TEXTFORMFIELD
SHARE: