如何在flutter中将TextFormField的首字母大写

Tim*_*ode 30 capitalization flutter flutter-textformfield

我正在尝试将 Textformfield 的第一个字母大写,为此我使用

textCapitalization: TextCapitalization.words,
Run Code Online (Sandbox Code Playgroud)

但它不适用于Textformfield,并且适用于textfield

请帮助如何做到这一点。

Rav*_*til 52

尝试下面的代码希望对您有帮助。参考TextCapitalization 这里

  • 第一个字母大写TextCapitalization.words
  • 每个字母大写TextCapitalization.characters
  • 文本字段的第一个字母大写TextCapitalization.sentences
  • 文本字段默认小写字母TextCapitalization.none

您的小部件:

   TextField(
      textCapitalization: TextCapitalization.words,
      decoration: InputDecoration(
        border: OutlineInputBorder(
          borderRadius: BorderRadius.circular(10),
        ),
        prefixIcon: Icon(
          Icons.search,
        ),
        hintText: 'Search',
      ),
    ),
Run Code Online (Sandbox Code Playgroud)

结果屏幕使用TextCapitalization.words图像输出

结果屏幕使用TextCapitalization.characters图像

结果屏幕使用TextCapitalization.sentences图片

结果屏幕使用TextCapitalization.none无图像


Jah*_*lam 13

您可以尝试使用大写格式化程序,只需在输入格式化程序部分中TextFormField使用类UpperCaseTextFormatter

TextFormField(
            controller: _textEditingController,
            inputFormatters: <TextInputFormatter>[
              UpperCaseTextFormatter()
            ],
          )
Run Code Online (Sandbox Code Playgroud)

上部文本格式化程序

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()}";
}
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述


小智 9

TextFormField(
       textCapitalization: TextCapitalization.words,
       ),
Run Code Online (Sandbox Code Playgroud)

这会将我们在 TextFormField 中键入的每个单词的第一个字母大写。

设置 textCapitalization 后,尝试在模拟器或设备实例上重建并再次检查。让我知道它有效,然后


小智 7

要使其与 TextFormField 一起使用,您必须添加

textCapitalization: TextCapitalization.sentences // Capital first letter
keyboardType: TextInputType.text, 
Run Code Online (Sandbox Code Playgroud)

例如keyboardType: TextInputType.name,它不会工作。