【发布时间】:2019-06-06 05:59:52
【问题描述】:
请帮忙解答我的 2 个问题。
第一个问题。为什么文本值消失了?[FIXED] by @Praneeth 我加了gif please click
我的代码就是这样使用的,
在我的小部件中,我调用了UsernameTextField 类。
小部件看起来像这样,
Widget build > WillPopScope > Scaffold > Form > ListView > children> 容器(容器下方)我还添加了
key: _scaffoldKey,和key: formKey,。
Container(
padding: EdgeInsets.all(16.0),
margin: EdgeInsets.only(top: 30.0),
child: UsernameTextField(),
),
用户名文本字段()
class UsernameTextField extends StatefulWidget{
final usernameController = TextEditingController();
@override
State<StatefulWidget> createState() {
return UsernameTextFieldState(usernameController);
}
}
class UsernameTextFieldState extends State<UsernameTextField>{
final usernameController;
UsernameTextFieldState(this.usernameController);
@override
Widget build(BuildContext context) {
return AppTextField(
decoration: InputDecoration(
contentPadding: const EdgeInsets.all(20.0),
labelText: AppTranslations.of(context)
.text("loginpage_username"),
),
myController: usernameController,
textInputType: TextInputType.emailAddress
);
}
}
AppTextField() 类,我将这个类用于我的每个 TextField 小部件
class AppTextField extends StatelessWidget {
final InputDecoration decoration;
final myController;
final TextInputType textInputType;
AppTextField({
this.decoration,
this.myController,
this.textInputType
});
@override
Widget build(BuildContext context) {
return TextFormField(
controller: myController,
keyboardType: textInputType,
textAlign: TextAlign.left,
decoration: decoration
);}}
第二个问题。如何获取 textField 值?
在我的按钮onPressed()我调用了方法,我调用了validation方法,但是结果是null
usernameValidation(){
String username = UsernameTextField().usernameController.text;
print(username);
}
【问题讨论】: