我正在使用GeekyAnts的Flutter登录首页动画。您可以在以下位置找到它: https://github.com/GeekyAnts/flutter-login-home-animation
我无法处理在字段中输入的用户名和密码值,因为这些字段是通过名为FormContainer的小部件从登录页面调用的,该小部件包含另外两个名为InputFieldArea的小部件。 在TextFormField中使用onChanged时,我不知道如何使这些值到达父LoginPage类。
您能帮助我了解如何处理登录页面中的字段更改以使登录生效吗?
谢谢!
答案 0 :(得分:0)
使用Retrieve the value of a text field中所述的id
。
TextEditingController
将控制器作为构造函数参数,您可以通过类似的构造函数将其向下传递给TextFormField
:
InputFieldArea
将控制器存储在class InputFieldArea extends StatelessWidget {
final TextEditingController controller;
final bool obscureText;
// ...
const InputFieldArea({Key key, this.controller, this.obscureText}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
color: Colors.orange,
// ...
child: TextFormField(
controller: controller,
obscureText: obscureText,
// ...
),
);
}
}
中非常重要,这样,如果出于某种原因重新构建了小部件,则不会重新创建控制器:
State
还要签出shrine login demo。