Flutter Web TextFormFields不接受输入

Flutter Web TextFormFields不接受输入,flutter,dart,flutter-web,Flutter,Dart,Flutter Web,我试图通过运行pub-run-build\u-runner-clean 但是表单中的所有TextFormField仍然不接受输入(只是空白) 我使用的是颤振1.9文本字段也不接受输入 我不知道 这是我的密码 import'包装:flatter_web/material.dart'; 类AddContent扩展StatefulWidget{ AddContent({Key}):超级(Key:Key); _AddContentState createState()=>\u AddContentSta

我试图通过运行
pub-run-build\u-runner-clean

但是
表单
中的所有
TextFormField
仍然不接受输入(只是空白)

我使用的是颤振1.9<代码>文本字段也不接受输入

我不知道

这是我的密码

import'包装:flatter_web/material.dart';
类AddContent扩展StatefulWidget{
AddContent({Key}):超级(Key:Key);
_AddContentState createState()=>\u AddContentState();
}
类_AddContentState扩展状态{
final TextStyle mStyleBlack=TextStyle(fontFamily:'arial',fontSize:13,颜色:Colors.black);
final TextStyle mStyleHintBlack=TextStyle(fontFamily:'arial',fontSize:13,颜色:Colors.black45);
final TextStyle mStyleWhite=TextStyle(fontFamily:'arial',fontSize:13,颜色:Colors.white70);
最终mStyle=TextStyle(字体大小:20,字体系列:“arial”);
final _formKey=GlobalKey();
TextEditingController _idController=TextEditingController();
TextEditingController\u videoController=TextEditingController();
列表imageFieldList=[''];
列出ImageFieldController=[TextEditingController()];
int imageCount=0;
字符串dropdownValue='none';
@凌驾
void initState(){
super.initState();
}
@凌驾
小部件构建(构建上下文){
最终id=TextFormField(
控制器:\ idController,
风格:mStyleHintBlack,
装饰:输入装饰(
labelText:“位置Id”,
标签样式:mStyleHintBlack,
边框:大纲输入边框(
)
),
验证器:(val){
如果(val.isEmpty){
返回“地点Id不能为空”;
}否则{
打印('ID:${u idController.text}');
返回null;
}
},
);
最终下拉字段=行(
儿童:[
文本(“选择类别”,样式:mStyleBlack),
尺寸箱(宽度:20),
下拉按钮(
value:dropdownValue,
onChanged:(字符串newValue){
设置状态(){
dropdownValue=newValue;
});
},
项目:[“无”、“餐厅”、“酒店”、“商店”、“美容”、“学校”、“活动”]
.map((字符串值){
返回下拉菜单项(
价值:价值,
子项:文本(值,样式:mStyleBlack,),
);
})
.toList(),
)
],
);
最终视频字段=文本格式字段(
模糊文本:false,
控制器:视频控制器,
风格:mStyleHintBlack,
装饰:输入装饰(
labelText:“Youtube视频链接”,
标签样式:mStyleHintBlack,
边框:大纲输入边框(
),  
),
);
最终提交按钮=材料(
边界半径:边界半径。圆形(30),
颜色:颜色(0xff01A0C7),
子:材质按钮(
minWidth:MediaQuery.of(context).size.width,
子项:文本('Add',样式:mStyleWhite),
已按下:(){
打印('按下添加按钮!');
if(_formKey.currentState.validate()){
}
},
),
);
返回容器(
填充:边缘设置。全部(15),
孩子:表格(
键:_formKey,
子:列(
儿童:[
身份证件
集装箱(高度:3),
dropdownField,
集装箱(高度:3),
视场,
集装箱(高度:10),
划船(
儿童:[
扩大(
儿童:
容器(
对齐:对齐.center,
身高:35,
子项:文本('Images',样式:mStyleBlack,),
)
),
扩大(
儿童:
容器(
对齐:对齐.center,
身高:35,
孩子:InkWell(
子项:图标(Icons.add,颜色:Colors.green),
onTap:(){
打印('addplacetapped!!!');
设置状态(){
imageFieldList.add(“”);
添加(TextEditingController());
});
},
),
),
),
],
),
纵队(
儿童:
List.generate(imageFieldList.length,(索引)=>
图像字段(索引)
)
),
集装箱(高度:10),
提交按钮
],
),
)
);
}
小部件图像字段(int索引){
返回行(
儿童:[
扩大(
弹性:9,
子项:TextFormField(
控制器:ImageFieldController.elementAt(索引),
风格:mStyleHintBlack,
装饰:输入装饰(
labelText:“图像${index+1}”,
标签样式:mStyleHintBlack,
边框:大纲输入边框(
)
),
验证器:(val){
如果(val.isEmpty){
返回“图像不能为空”;
}否则{
打印('Image${index+1}:${imageFieldControllers.elementAt(index.text}');
返回null;
}
},
),
),
扩大(
弹性:1,
import 'package:flutter_web/material.dart';

class AddContent extends StatefulWidget {
  AddContent({Key key}) : super(key: key);
  _AddContentState createState() => _AddContentState();
}

class _AddContentState extends State<AddContent> {

  final TextStyle mStyleBlack = TextStyle(fontFamily: 'arial', fontSize: 13, color: Colors.black);
  final TextStyle mStyleHintBlack = TextStyle(fontFamily: 'arial', fontSize: 13, color: Colors.black45);
  final TextStyle mStyleWhite = TextStyle(fontFamily: 'arial', fontSize: 13, color: Colors.white70);
  final mStyle = TextStyle(fontSize: 20, fontFamily: 'arial');
  final _formKey = GlobalKey<FormState>();

  TextEditingController _idController = TextEditingController();
  TextEditingController _videoController = TextEditingController();

  List<String> imageFieldList = [''];
  List<TextEditingController> imageFieldControllers = [TextEditingController()];

  int imageCount = 0;
  String dropdownValue = 'none';

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {

    final id = TextFormField(
        controller: _idController,
        style: mStyleHintBlack,
        decoration: InputDecoration(
          labelText: 'Place Id',
          labelStyle: mStyleHintBlack,
          border: OutlineInputBorder(
            )
          ),
          validator: (val) {
          if(val.isEmpty) {
            return 'Place Id cannot be empty';
          } else {
            print('ID: ${_idController.text}');
            return null;
          }
        },
    );

    final dropdownField = Row(
      children: <Widget>[
        Text('Select Category', style: mStyleBlack),
        SizedBox(width: 20),
        DropdownButton<String>(
            value: dropdownValue,
            onChanged: (String newValue) {
              setState(() {
                dropdownValue = newValue;
              });
            },
            items: <String>['none', 'Restaurant', 'Hotel', 'Shop', 'Beauty', 'School', 'Event']
              .map<DropdownMenuItem<String>>((String value) {
                return DropdownMenuItem<String>(
                  value: value,
                  child: Text(value, style: mStyleBlack,),
                );
              })
              .toList(),
        )
      ],
    );

    final videoField = TextFormField(
      obscureText: false,
      controller: _videoController,
      style: mStyleHintBlack,
      decoration: InputDecoration(
        labelText: 'Youtube Video Link',
        labelStyle: mStyleHintBlack,
        border: OutlineInputBorder(
          ),  
        ),
    );

    final submitButton = Material(
      borderRadius: BorderRadius.circular(30),
      color: Color(0xff01A0C7),
      child: MaterialButton(
        minWidth: MediaQuery.of(context).size.width,
        child: Text('Add', style: mStyleWhite),
        onPressed: () {
          print('Add Button Pressed!');
          if(_formKey.currentState.validate()) {
          }
        },
      ),
    );

    return Container(
          padding: EdgeInsets.all(15),
          child:  Form(
              key: _formKey,
              child: Column(
                children: <Widget>[
                  id,
                  Container(height: 3),
                  dropdownField,
                  Container(height: 3),
                  videoField,
                  Container(height: 10),
                  Row(
                    children: <Widget>[
                    Expanded(
                      child:
                      Container(
                        alignment: Alignment.center,
                        height: 35,
                        child: Text('Images', style: mStyleBlack,),
                      )
                    ),
                    Expanded(
                      child: 
                      Container(
                        alignment: Alignment.center,
                        height: 35,
                        child: InkWell(
                          child: Icon(Icons.add, color: Colors.green),
                          onTap: () {
                            print('Add Place Tapped!!!');
                            setState(() {
                              imageFieldList.add(''); 
                              imageFieldControllers.add(TextEditingController());
                            });
                          },
                        ),
                      ),
                    ),
                    ],
                  ),
                  Column(
                    children: 
                      List.generate(imageFieldList.length, (index) => 
                          imageField(index)
                      )
                  ),
                  Container(height: 10), 
                  submitButton
                ],
              ),
            )
    );
  }

  Widget imageField(int index) {
    return Row(
        children: <Widget>[
          Expanded(
            flex: 9,
            child: TextFormField(
              controller: imageFieldControllers.elementAt(index),
              style: mStyleHintBlack,
              decoration: InputDecoration(
                labelText: 'Image ${index + 1}',
                labelStyle: mStyleHintBlack,
                border: OutlineInputBorder(
                  )
                ),
                validator: (val) {
                if(val.isEmpty) {
                  return 'Image cannot be empty';
                } else {
                  print('Image ${index + 1}: ${imageFieldControllers.elementAt(index).text}');
                  return null;
                }
              },
            ),
          ),
          Expanded(
            flex: 1,
            child: (index > 0)? 
              Container(
                child: InkWell(
                  child: Icon(Icons.remove_circle),
                  onTap: () {
                    print('Remove Image');
                    setState(() {
                     imageFieldList.removeAt(index); 
                     imageFieldControllers.removeAt(index);
                    });
                  },
                )
              ):
              Container()
          )
        ],
      );
  }
}