flutter - 如何向 TextField 添加检查器和警告
问题描述
这是我要添加错误警告和资格检查器的代码
TextField(
controller: emailController,
decoration: InputDecoration(
hintText: 'name@example.com',
labelText: 'Email',
// icon: Icon(Icons.mail),
suffixIcon: emailController.text.isEmpty
? Container(width: 0)
: IconButton(
icon: Icon(Icons.close),
onPressed: () => emailController.clear(),
),
border: OutlineInputBorder(),
focusColor: Colors.red
),
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done,
// autofocus: true,
),
如果该人没有插入@gmail.com 错误消息看起来如何使错误警告出现
解决方案
您可以在内部和内部使用Form()
小部件TextFormField()
TextFormField()
添加validator(val){ // you qualify checker }
,然后你可以打电话
_key.currentState.validate()
在按钮上单击以验证您的电子邮件。
class _MyWidgetState extends State<MyWidget> {
final GlobalKey<FormState> _key = GlobalKey();
var emailController = TextEditingController();
@override
Widget build(BuildContext context) {
return Container(
height:150,
child: Column(
children:[
Form(
key: _key,
child:TextFormField(
controller: emailController,
decoration: InputDecoration(
hintText: 'name@example.com',
labelText: 'Email',
// icon: Icon(Icons.mail),
suffixIcon: emailController.text.isEmpty
? Container(width: 0)
: IconButton(
icon: Icon(Icons.close),
onPressed: () => emailController.clear(),
),
border: OutlineInputBorder(),
focusColor: Colors.red
),
keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done,
// autofocus: true,
onFieldSubmitted: (val){
_key.currentState!.validate();
},
validator: (val){
if(!val!.contains("@")){
return "invalid email";
}
return null;
},
)
),
ElevatedButton(onPressed: () {
_key.currentState.validate();
}, child: Text("Check"),)
],
),
);
}
}
推荐阅读
- firebase - 电话号码的 Firestore 安全规则问题
- postgresql - 安装到 Windows 上的本地文件夹时,postgres 失败
- android - 关联现有 Firebase 和 Google Cloud 项目
- email - Google Apps 脚本 - 不发送电子邮件复选框未选中
- android - 从底部导航按回时如何避免片段重新加载数据
- xml - XPath 选择没有“isNull”的值
- angular - 具有角 5 的引导网格系统
- sql - TSQL 填充数据
- javascript - Javascript 函数不会在 IE11 上构建 SVG
- javascript - 在 JavaScript 中将多维数组转换为 CSV 文件的列并使用浏览器书签保存