Flutter 对于Flitter中RenderFlex溢出和不正确使用父窗口小部件,有什么解决方案?

Flutter 对于Flitter中RenderFlex溢出和不正确使用父窗口小部件,有什么解决方案?,flutter,dart,Flutter,Dart,这就是错误: ════════ widgets库捕获到异常 ═══════════════════════════════════ 抛出了以下断言 应用父数据时:不正确使用ParentDataWidget 已扩展的ParentDataWidget(flex:1)希望应用的ParentData 将FlexParentData键入已设置为接受的RenderObject 不兼容类型为BoxParentData的ParentData 通常,这意味着扩展的小部件具有错误的祖先 RenderObjectWi

这就是错误:

════════ widgets库捕获到异常 ═══════════════════════════════════ 抛出了以下断言 应用父数据时:不正确使用ParentDataWidget

已扩展的ParentDataWidget(flex:1)希望应用的ParentData 将FlexParentData键入已设置为接受的RenderObject 不兼容类型为BoxParentData的ParentData

通常,这意味着扩展的小部件具有错误的祖先 RenderObjectWidget。通常,扩展的小部件直接放置 在Flex小部件内部。有问题的扩展文件当前放置在 填充小部件

import'package:dropdown_search/dropdown_search.dart';
进口“包装:颤振/材料.省道”;
导入“package:form_field_validator/form_field_validator.dart”;
将“package:http/http.dart”导入为http;
导入“package:string_validator/string_validator.dart”;
类注册扩展了StatefulWidget{
@凌驾
_SignUpState createState()=>\u SignUpState();
}
类_SignUpState扩展状态{
get items=>null;
字符串mgaBarangay;
字符串idBrgy;
列表barangays=[
“阿辛”,
“ABCR”,
“阿普甘路”,
];
映射返回值={
“ASIN”:“1234”,
“ABCR”:“4444”,
“阿普甘路”:“5555”,
};
@凌驾
小部件构建(构建上下文){
final TextEditingController fName=TextEditingController();
最终TextEditingController lName=TextEditingController();
final TextEditingController mName=TextEditingController();
最终文本编辑控制器电子邮件=文本编辑控制器();
final TextEditingController cNumber=TextEditingController();
最终TextEditingController pWord=TextEditingController();
final TextEditingController uName=TextEditingController();
//\u submit()异步{
//var url=Uri.parse('http://10.10.10.162:8000/api/test');
//var response=wait http.post(url,正文:{
//“Barangay”:mgaBarangay,
//“firstName”:fName.text,
//“lastName”:lName.text,
//“middleName”:mName.text,
//“联系人号码”:cNumber.text,
//“email”:email.text,
//“密码”:pWord.text,
//   });
//打印('Response status:${(Response.statusCode)}');
//打印('Response body:${(Response.body)}');
// }
//
_提交(){
印刷品(mgaBarangay);
}
小部件flminputFile({
标签,
模糊文本=假,
t控制=文本编辑控制器,
}) {
返回列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
标签,
样式:TextStyle(
尺寸:15,
fontWeight:fontWeight.w400,
颜色:颜色。黑色87),
),
大小盒子(
身高:5,,
),
TextFormField(
validator:RequiredValidator(errorText:“此字段为必填项”),
控制器:t控制,
蒙蔽文本:蒙蔽文本,
装饰:输入装饰(
内容填充:
边缘集。对称(垂直:0,水平:10),
enabledBorder:OutlineInputBorder(
borderSide:borderSide(颜色:Colors.grey[400]),
),
边框:大纲输入边框(
borderSide:borderSide(颜色:Colors.grey[400]),颜色,
),
大小盒子(
身高:5,,
)
],
);
}
小部件用户文件({
标签,
模糊文本=假,
t控制=文本编辑控制器,
}) {
返回列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
标签,
样式:TextStyle(
尺寸:15,
fontWeight:fontWeight.w400,
颜色:颜色。黑色87),
),
大小盒子(
身高:5,,
),
TextFormField(
validator:RequiredValidator(errorText:“此字段为必填项”),
控制器:t控制,
蒙蔽文本:蒙蔽文本,
装饰:输入装饰(
内容填充:
边缘集。对称(垂直:0,水平:10),
enabledBorder:OutlineInputBorder(
borderSide:borderSide(颜色:Colors.grey[400]),
),
边框:大纲输入边框(
borderSide:borderSide(颜色:Colors.grey[400]),颜色,
),
大小盒子(
身高:5,,
)
],
);
}
小部件输入文件({
标签,
模糊文本=假,
t控制=文本编辑控制器,
}) {
返回列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
标签,
样式:TextStyle(
尺寸:15,
fontWeight:fontWeight.w400,
颜色:颜色。黑色87),
),
大小盒子(
身高:5,,
),
TextFormField(
控制器:t控制,
蒙蔽文本:蒙蔽文本,
装饰:输入装饰(
内容填充:
边缘集。对称(垂直:0,水平:10),
enabledBorder:OutlineInputBorder(
borderSide:borderSide(颜色:Colors.grey[400]),
),
边框:大纲输入边框(
borderSide:borderSide(颜色:Colors.grey[400]),颜色,
),
大小盒子(
身高:5,,
)
],
);
}
控件cninputFile({
标签,
模糊文本=假,
t控制=文本编辑控制器,
}) {
返回列(
横轴对齐:Cr
import 'package:dropdown_search/dropdown_search.dart';
import 'package:flutter/material.dart';
import 'package:form_field_validator/form_field_validator.dart';
import 'package:http/http.dart' as http;
import 'package:string_validator/string_validator.dart';

class SignUp extends StatefulWidget {
  @override
  _SignUpState createState() => _SignUpState();
}

class _SignUpState extends State<SignUp> {
  get items => null;

  String mgaBarangay;
  String idBrgy;

  List<String> barangays = [
    "ASIN",
    "ABCR",
    "APUGAN ROAD",
  ];
  Map<String, String> returnedValue = {
    "ASIN": "1234",
    "ABCR": "4444",
    "APUGAN ROAD": "5555",
  };

  @override
  Widget build(BuildContext context) {
    final TextEditingController fName = TextEditingController();
    final TextEditingController lName = TextEditingController();
    final TextEditingController mName = TextEditingController();
    final TextEditingController eMail = TextEditingController();
    final TextEditingController cNumber = TextEditingController();
    final TextEditingController pWord = TextEditingController();
    final TextEditingController uName = TextEditingController();

    // _submit() async {
    //   var url = Uri.parse('http://10.10.10.162:8000/api/test');
    //   var response = await http.post(url, body: {
    //     'Barangay': mgaBarangay,
    //     'firstName': fName.text,
    //     'lastName': lName.text,
    //     'middleName': mName.text,
    //     'contactNumber': cNumber.text,
    //     'email': eMail.text,
    //     'password': pWord.text,
    //   });
    //   print('Response status: ${(response.statusCode)}');
    //   print('Response body: ${(response.body)}');
    // }
    //
    _submit() {
      print(mgaBarangay);
    }

    Widget flminputFile({
      label,
      obscureText = false,
      tControl = TextEditingController,
    }) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            label,
            style: TextStyle(
                fontSize: 15,
                fontWeight: FontWeight.w400,
                color: Colors.black87),
          ),
          SizedBox(
            height: 5,
          ),
          TextFormField(
            validator: RequiredValidator(errorText: 'This field is required'),
            controller: tControl,
            obscureText: obscureText,
            decoration: InputDecoration(
                contentPadding:
                    EdgeInsets.symmetric(vertical: 0, horizontal: 10),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.grey[400]),
                ),
                border: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey[400]))),
          ),
          SizedBox(
            height: 5,
          )
        ],
      );
    }

    Widget userFile({
      label,
      obscureText = false,
      tControl = TextEditingController,
    }) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            label,
            style: TextStyle(
                fontSize: 15,
                fontWeight: FontWeight.w400,
                color: Colors.black87),
          ),
          SizedBox(
            height: 5,
          ),
          TextFormField(
            validator: RequiredValidator(errorText: 'This field is required'),
            controller: tControl,
            obscureText: obscureText,
            decoration: InputDecoration(
                contentPadding:
                    EdgeInsets.symmetric(vertical: 0, horizontal: 10),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.grey[400]),
                ),
                border: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey[400]))),
          ),
          SizedBox(
            height: 5,
          )
        ],
      );
    }

    Widget eminputFile({
      label,
      obscureText = false,
      tControl = TextEditingController,
    }) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            label,
            style: TextStyle(
                fontSize: 15,
                fontWeight: FontWeight.w400,
                color: Colors.black87),
          ),
          SizedBox(
            height: 5,
          ),
          TextFormField(
            controller: tControl,
            obscureText: obscureText,
            decoration: InputDecoration(
                contentPadding:
                    EdgeInsets.symmetric(vertical: 0, horizontal: 10),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.grey[400]),
                ),
                border: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey[400]))),
          ),
          SizedBox(
            height: 5,
          )
        ],
      );
    }

    Widget cninputFile({
      label,
      obscureText = false,
      tControl = TextEditingController,
    }) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            label,
            style: TextStyle(
                fontSize: 15,
                fontWeight: FontWeight.w400,
                color: Colors.black87),
          ),
          SizedBox(
            height: 5,
          ),
          TextFormField(
            controller: tControl,
            obscureText: obscureText,
            decoration: InputDecoration(
                contentPadding:
                    EdgeInsets.symmetric(vertical: 0, horizontal: 10),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.grey[400]),
                ),
                border: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey[400]))),
          ),
          SizedBox(
            height: 5,
          )
        ],
      );
    }

    Widget epinputFile({
      label,
      obscureText = false,
      tControl = TextEditingController,
    }) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            label,
            style: TextStyle(
                fontSize: 15,
                fontWeight: FontWeight.w400,
                color: Colors.black87),
          ),
          SizedBox(
            height: 5,
          ),
          TextFormField(
            controller: tControl,
            obscureText: obscureText,
            decoration: InputDecoration(
                contentPadding:
                    EdgeInsets.symmetric(vertical: 0, horizontal: 10),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.grey[400]),
                ),
                border: OutlineInputBorder(
                    borderSide: BorderSide(color: Colors.grey[400]))),
          ),
          SizedBox(
            height: 5,
          )
        ],
      );
    }

    return Scaffold(
        resizeToAvoidBottomInset: false,
        backgroundColor: Colors.white,
        appBar: AppBar(
          elevation: 0,
          brightness: Brightness.light,
          backgroundColor: Colors.white,
          leading: IconButton(
            onPressed: () {
              Navigator.pop(context);
            },
            icon: Icon(
              Icons.arrow_back_ios,
              size: 20,
              color: Colors.black,
            ),
          ),
        ),
        body: Center(
          child: Container(
            height: MediaQuery.of(context).size.height,
            width: MediaQuery.of(context).size.shortestSide,
            padding: EdgeInsets.symmetric(horizontal: 30, vertical: 40),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Expanded(
                    child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: <Widget>[
                    Column(
                      children: <Widget>[
                        Text(
                          "Sign Up",
                          style: TextStyle(
                              fontSize: 30, fontWeight: FontWeight.bold),
                        ),
                        SizedBox(
                          height: 20,
                        ),
                        Text(
                          "Create your account",
                          style:
                              TextStyle(fontSize: 15, color: Colors.grey[700]),
                        )
                      ],
                    ),
                    Padding(
                      padding: EdgeInsets.symmetric(horizontal: 40),
                      child: Column(
                        children: <Widget>[
                          cbxFile(label: "Barangay"),
                          flminputFile(label: "First Name", tControl: fName),
                          flminputFile(label: "Last Name", tControl: lName),
                          flminputFile(label: "Middle Name", tControl: mName),
                          cninputFile(
                              label: "Contact Number", tControl: cNumber),
                          userFile(label: "Username", tControl: uName),
                          eminputFile(label: "Email", tControl: eMail),
                          epinputFile(
                              label: "Password",
                              obscureText: true,
                              tControl: pWord),
                        ],
                      ),
                    ),
                    Padding(
                        padding: EdgeInsets.symmetric(horizontal: 40),
                        child: Expanded(
                          child: Container(
                            decoration: BoxDecoration(
                                borderRadius: BorderRadius.circular(50),
                                border: Border(
                                  bottom: BorderSide(color: Colors.black),
                                  top: BorderSide(color: Colors.black),
                                  left: BorderSide(color: Colors.black),
                                  right: BorderSide(color: Colors.black),
                                )),
                            child: MaterialButton(
                              minWidth:
                                  MediaQuery.of(context).size.shortestSide,
                              height: 50,
                              onPressed: () {
                                _submit();
                                //dito yung pag register
                              },
                              color: Color(0xff0095FF),
                              elevation: 0,
                              shape: RoundedRectangleBorder(
                                borderRadius: BorderRadius.circular(45),
                              ),
                              child: Text(
                                "Register",
                                style: TextStyle(
                                  fontWeight: FontWeight.w600,
                                  fontSize: 18,
                                  color: Colors.white,
                                ),
                              ),
                            ),
                          ),
                        )),
                  ],
                ))
              ],
            ),
          ),
        ));
  }

  Widget cbxFile({label}) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Text(
          label,
          style: TextStyle(
              fontSize: 15, fontWeight: FontWeight.w400, color: Colors.black87),
        ),
        DropdownSearch(
          onChanged: (dynamic value) {
            mgaBarangay = value;
            idBrgy = returnedValue[value];
            mgaBarangay = idBrgy;
          },
          mode: Mode.DIALOG,
          items: barangays,
        ),
        SizedBox(
          height: 5,
        ),
      ],
    );
  }
}