Flutter 如何为AutoCompleteTextField设置验证程序?
当用户在AutoCompleteText字段中输入但不在预定义的建议中,或者只是输入随机文本时,如何添加验证器或errortext。我确实将错误文本显示为Flutter 如何为AutoCompleteTextField设置验证程序?,flutter,dart,Flutter,Dart,当用户在AutoCompleteText字段中输入但不在预定义的建议中,或者只是输入随机文本时,如何添加验证器或errortext。我确实将错误文本显示为 List<String> suggestionList = ['170010','110011','10001']; AutoCompleteTextField( focusNode: pincodeFocus, dec
List<String> suggestionList = ['170010','110011','10001'];
AutoCompleteTextField(
focusNode: pincodeFocus,
decoration: InputDecoration(
errorText: pincode.text == '' ? 'Null' : null,
border: InputBorder.none,
prefixIcon: Icon(Icons.home),
hintText: "Pincode",
),)
代码:
AutoCompleteTextField(
focusNode: pincodeFocus,
decoration: InputDecoration(
errorText: pincode.text == '' ? 'Null' : null,
border: InputBorder.none,
prefixIcon: Icon(Icons.home),
hintText: "Pincode",
),
controller: pincode,
itemSubmitted: (item) {
setState(() {
pincode.text = item.toString();
textField.controller.text = item.toString();
print('item submitted' + item.toString());
});
},
key: key,
suggestions: suggestionList,
itemBuilder: (context, item) {
return Container(
padding: EdgeInsets.all(20.0),
child: Row(
children: <Widget>[
Text(
item,
style: TextStyle(color: Colors.black),
)
],
),
);
},
itemSorter: (a, b) {
return a.compareTo(b);
},
itemFilter: (item, query) {
return item
.toLowerCase()
.toString()
.startsWith(query.toLowerCase());
},
),
AutoCompleteTextField(
focusNode:pincodeFocus,
装饰:输入装饰(
errorText:pincode.text='''Null':Null,
边框:InputBorder.none,
前缀:图标(Icons.home),
hintText:“Pincode”,
),
控制器:pincode,
已提交项目:(项目){
设置状态(){
pincode.text=item.toString();
textField.controller.text=item.toString();
打印('item submitted'+item.toString());
});
},
钥匙:钥匙,
建议:建议列表,
itemBuilder:(上下文,项){
返回容器(
填充:所有边缘设置(20.0),
孩子:排(
儿童:[
正文(
项目,,
样式:TextStyle(颜色:Colors.black),
)
],
),
);
},
物品分拣员:(a、b){
返回a.compareTo(b);
},
itemFilter:(项目,查询){
退货项目
.toLowerCase()
.toString()
.startsWith(query.toLowerCase());
},
),
AutoCompleteTextField(
focusNode: pincodeFocus,
decoration: InputDecoration(
errorText: pincode.text == '' ? 'Null' : null,
border: InputBorder.none,
prefixIcon: Icon(Icons.home),
hintText: "Pincode",
),
controller: pincode,
itemSubmitted: (item) {
setState(() {
pincode.text = item.toString();
textField.controller.text = item.toString();
print('item submitted' + item.toString());
});
},
key: key,
suggestions: suggestionList,
itemBuilder: (context, item) {
return Container(
padding: EdgeInsets.all(20.0),
child: Row(
children: <Widget>[
Text(
item,
style: TextStyle(color: Colors.black),
)
],
),
);
},
itemSorter: (a, b) {
return a.compareTo(b);
},
itemFilter: (item, query) {
return item
.toLowerCase()
.toString()
.startsWith(query.toLowerCase());
},
),