是否可以在凸起的按钮和texfield之间建立连接? 我想制作一个QuizApp,在其中在文本字段中输入答案,并在按if,else方法检查的按钮(如果在文本字段中输入的内容正确)时单击该按钮。我该怎么办?
Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
TextFormField(
decoration: InputDecoration(labelText:"put in the correct answer",
labelStyle: TextStyle(color: Colors.white)
),
key: _formKey,
autovalidate: true,
validator: (String value){
if (value.contains("test") ){
return "Gebe mehr ein";
}else{
return null;}
}
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0),
child: RaisedButton(
onPressed: (){
if (_formKey.currentState.validate()){
debugPrint("Alles richtig gemacht.");
}
},
),
)
],)
答案 0 :(得分:1)
您可以将onSaved方法赋予TextFormField。
TextFormField(
obscureText: true,
decoration: InputDecoration(
prefixIcon: const Icon(FontAwesomeIcons.lock),
labelText: AppLocalizations.of(context).translate("password"),
),
onSaved: (String val) {
_password = val;
},
validator: (val) {
return AppLocalizations.of(context).translate(validatePassword(val));
},
),
如果您的表单通过验证,则可以保存您的表单。因此,当您保存表单时,所有onSaved()方法都将在表单小部件的后代小部件中调用,这基本上将上述示例中的值保存在变量中。
或者您可以将TextEditingController赋予TextFormField小部件。
TextEditingController _controller = TextEditingController();
通过initState
方法向其添加侦听器。
_controller.addListener(() {
setState(() {
_amount = _controller.text;
});
});
并以dispose
方法放置控制器。
@override
void dispose() {
super.dispose();
_controller.dispose();
}