小编Ami*_*mit的帖子

Flutter:自定义 TextFormField 不保存 onSaved 值

onSaved 没有将我的值保存在我调用这个类的主类中

我想根据 api 返回数据生成自定义表单并在表单中绑定数据,然后它应该按照在 flutter 中的 validate 调用进行验证

我创建了用于生成表单字段的自定义文本表单字段

在主类中,我使用带有 for 循环的 listview 生成列表,然后我的表单将进行验证

class CustomTextField extends StatefulWidget {
CustomTextField(
  {@required this.focusNode,
  @required this.nextFocusNode,
  @required this.textEditingController,
  @required this.validator,
  @required this.labelText,
  @required this.dataText});

final FocusNode focusNode;
final FocusNode nextFocusNode;
 final TextEditingController textEditingController;
 final FormFieldValidator<String> validator;

 final String labelText;
 String dataText;

  @override
  _CustomTextFieldState createState() => new _CustomTextFieldState();
 }

 class _CustomTextFieldState extends State<CustomTextField> {
      @override
  Widget build(BuildContext context) {
    return Container(
        height: 65,
        child: new TextFormField(
            style: Utility.textFormFieldStyle(context),
        keyboardType: TextInputType.text,
        textInputAction: widget.nextFocusNode …
Run Code Online (Sandbox Code Playgroud)

android dart hybrid-mobile-app flutter flutter-layout

5
推荐指数
1
解决办法
3786
查看次数

Flutter:行中的两个 Textformfield 有问题

这是问题的图片

我在颤动设计中面临问题,当我在一个文本表单字段上设置错误时,我连续有两个文本表单字段,它会稍微向上移动或收缩以为错误文本腾出空间

在 android 原生中不存在这个问题

如果有人可以帮助我的话

我尝试了很多解决方案,例如设置容器高度 100 并将行放置在其中并设置对齐中心,但没有找到解决方案

   final firstName = new TextFormField(
    decoration: InputDecoration(
   //          border: OutlineInputBorder(),
      labelText: _APP_FIRSTNAME_LBL,
      contentPadding:
          EdgeInsets.only(left: 0.0, top: 8.0, right: 0.0, bottom: 8.0)),
  validator: validateName,
  onSaved: (String val) {
    _mFirstName = val;
  },
);

 final lastName = new TextFormField(
    decoration: InputDecoration(
 //            border: OutlineInputBorder(),
        labelText: _APP_LASTNAME_LBL,
        contentPadding:
            EdgeInsets.only(left: 0.0, top: 8.0, right: 0.0, bottom: 
 8.0)),
    //obscureText: true,
    validator: validateName,
    onSaved: (String val) {
      _mLastName = val;
    });

  final rowFirstLastName = new Container(
    alignment: …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

4
推荐指数
1
解决办法
3284
查看次数