如何在颤动中将TextFormField的首字母大写
How to capitialize first letter of TextFormField in flutter
我正在尝试将 Textformfield 的第一个字母大写,为此我使用
textCapitalization: TextCapitalization.words,
但它不适用于 Textformfield
,但适用于 textfield
请帮助如何做到这一点。
您可以尝试使用大写格式化程序,在 TextFormField
中,您只需在输入格式化程序部分使用 UpperCaseTextFormatter
class
TextFormField(
controller: _textEditingController,
inputFormatters: <TextInputFormatter>[
UpperCaseTextFormatter()
],
)
上层文本格式化程序
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()}";
}
输出:
TextFormField(
textCapitalization: TextCapitalization.words,
),
这会将我们在 TextFormField 中键入的每个单词的首字母大写。
设置 textCapitalization 后,尝试在您的模拟器或设备实例上重建并再次检查。让我知道它有效,
试试下面的代码希望对你有帮助。参考 TextCapitalization
here
- 首字母大写
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',
),
),
您的结果屏幕 ->
我正在尝试将 Textformfield 的第一个字母大写,为此我使用
textCapitalization: TextCapitalization.words,
但它不适用于 Textformfield
,但适用于 textfield
请帮助如何做到这一点。
您可以尝试使用大写格式化程序,在 TextFormField
中,您只需在输入格式化程序部分使用 UpperCaseTextFormatter
class
TextFormField(
controller: _textEditingController,
inputFormatters: <TextInputFormatter>[
UpperCaseTextFormatter()
],
)
上层文本格式化程序
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()}";
}
输出:
TextFormField(
textCapitalization: TextCapitalization.words,
),
这会将我们在 TextFormField 中键入的每个单词的首字母大写。
设置 textCapitalization 后,尝试在您的模拟器或设备实例上重建并再次检查。让我知道它有效,
试试下面的代码希望对你有帮助。参考 TextCapitalization
here
- 首字母大写
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',
),
),
您的结果屏幕 ->