最近我开始在桌面上制作一个管理面板,我使用
TextFormField
来接受用户的输入,但不幸的是,键盘无法在文本字段内写入数据,我在 Google 上搜索并没有找到任何解决方案,请问有人可以帮助我吗?
以下是我在项目中使用的一些文本字段:
Container(
width: 200,
margin: EdgeInsets.all(15),
child: TextFormField(
onChanged: (value) {
referalName.text = value;
},
validator: (value) {
if (value!.isEmpty) {
return 'Please Enter Referal Code';
}
return null;
},
controller: referalName,
style: TextStyle(
fontSize: 24,
color: Colors.blue,
fontWeight: FontWeight.w600,
),
decoration: InputDecoration(
focusColor: Colors.white,
//add prefix icon
prefixIcon: Icon(
Icons.person_outline_rounded,
color: Colors.grey,
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
),
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Colors.blue, width: 1.0),
borderRadius: BorderRadius.circular(10.0),
),
fillColor: Colors.grey,
hintText: "Referal Name",
//make hint text
hintStyle: TextStyle(
color: Colors.grey,
fontSize: 16,
fontFamily: "verdana_regular",
fontWeight: FontWeight.w400,
),
//create lable
labelText: 'Enter Referal Name',
//lable style
labelStyle: TextStyle(
color: Colors.grey,
fontSize: 16,
fontFamily: "verdana_regular",
fontWeight: FontWeight.w400,
),
),
),
),
我已经测试了你的代码,除了一件事之外,它对我来说工作得很好。每次输入字段中的文本发生变化时,您都会重置引用控制器的值。这导致了意外错误。尝试删除或注释掉 onChanged 函数的代码。
onChanged: (value) {
// referalName.text = value;
},
查看此链接以获取更多信息:
https://api.flutter.dev/flutter/material/TextField/onChanged.html