How to capitialize first letter of TextFormField in flutter

Issue

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.

Solution

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

Answered By – Jahidul Islam

Answer Checked By – Katrina (FlutterFixes Volunteer)

Leave a Reply

Your email address will not be published.