Flutter 颤振与振动;Textfield:如何通过自动删除Textfield中的空间来限制用户使用该空间?
如何通过在用户完成键入时自动删除该空格来限制用户使用textfield中的空格 例如,如果用户键入Flutter 颤振与振动;Textfield:如何通过自动删除Textfield中的空间来限制用户使用该空间?,flutter,dart,textfield,onchange,textformfield,Flutter,Dart,Textfield,Onchange,Textformfield,如何通过在用户完成键入时自动删除该空格来限制用户使用textfield中的空格 例如,如果用户键入KingofLight,则在他/她离开文本字段后,它将作为KingofLight应用 TextFormField( initialValue: nickname != null ? nickname : current_user.
KingofLight
,则在他/她离开文本字段后,它将作为KingofLight
应用
TextFormField(
initialValue: nickname != null
? nickname
: current_user.nickname,
decoration: InputDecoration(
border: new OutlineInputBorder(
borderSide: new BorderSide(color: Colors.grey),
borderRadius: BorderRadius.circular(6),
),
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.grey, width: 1.0),
borderRadius: BorderRadius.circular(6),
),
enabledBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.grey, width: 1.0),
borderRadius: BorderRadius.circular(6),
),
hintText: 'Empty',
hintStyle: TextStyle(
color: Colors.grey[400],
fontSize: 20,
//fontWeight: FontWeight.bold,
),
),
style: TextStyle(
fontSize: 20,
// fontWeight: FontWeight.bold,
),
validator: (val) => val.length < 2
? 'Enter a nickname 2+char long'
: null,
onChanged: (val) {
val = val.replaceAll(' ', '');
setState(() => nickname = val);
},
),
TextFormField(
initialValue:昵称!=null
昵称
:当前用户昵称,
装饰:输入装饰(
边框:新大纲输入边框(
borderSide:新的borderSide(颜色:Colors.grey),
边界半径:边界半径。圆形(6),
),
聚焦顺序:大纲输入边框(
边界:
边界边(颜色:颜色。灰色,宽度:1.0),
边界半径:边界半径。圆形(6),
),
enabledBorder:OutlineInputBorder(
边界:
边界边(颜色:颜色。灰色,宽度:1.0),
边界半径:边界半径。圆形(6),
),
hintText:'空',
hintStyle:TextStyle(
颜色:颜色。灰色[400],
尺寸:20,
//fontWeight:fontWeight.bold,
),
),
样式:TextStyle(
尺寸:20,
//fontWeight:fontWeight.bold,
),
验证程序:(val)=>val.length<2
?输入昵称2+字符长'
:null,
一旦更改:(val){
val=val.replaceAll(“”,”);
设置状态(()=>昵称=val);
},
),
请帮帮我!谢谢大家! 一种方法是使用
textededitingcontroller
这样做,并且可以根据您的用例调用format昵称()
class _MyWidgetState extends State<MyWidget>{
FocusNode node = new FocusNode();
TextEditingController tc = TextEditingController();
@override
void initState(){
node.addListener((){
if(!node.hasFocus){
formatNickname();
}
});
super.initState();
}
void formatNickname(){
tc.text = tc.text.replaceAll(" ", "");
}
@override
Widget build(BuildContext context) {
return Column(
children: [
TextFormField(
focusNode: node,
controller: tc,
),
TextFormField(),
RaisedButton(
child: Text('Format'),
onPressed: (){
formatNickname();
},
),
],
);
}
}
class\u MyWidgetState扩展状态{
FocusNode节点=新的FocusNode();
TextEditingController tc=TextEditingController();
@凌驾
void initState(){
node.addListener((){
如果(!node.hasFocus){
格式化昵称();
}
});
super.initState();
}
无效格式昵称(){
tc.text=tc.text.replaceAll(“,”);
}
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[
TextFormField(
focusNode:node,
控制员:tc,,
),
TextFormField(),
升起的按钮(
子项:文本('格式'),
已按下:(){
格式化昵称();
},
),
],
);
}
}
请参见TextInputFormatter