Flutter 对于Flitter中RenderFlex溢出和不正确使用父窗口小部件,有什么解决方案?
这就是错误: ════════ widgets库捕获到异常 ═══════════════════════════════════ 抛出了以下断言 应用父数据时:不正确使用ParentDataWidget 已扩展的ParentDataWidget(flex:1)希望应用的ParentData 将FlexParentData键入已设置为接受的RenderObject 不兼容类型为BoxParentData的ParentData 通常,这意味着扩展的小部件具有错误的祖先 RenderObjectWidget。通常,扩展的小部件直接放置 在Flex小部件内部。有问题的扩展文件当前放置在 填充小部件Flutter 对于Flitter中RenderFlex溢出和不正确使用父窗口小部件,有什么解决方案?,flutter,dart,Flutter,Dart,这就是错误: ════════ widgets库捕获到异常 ═══════════════════════════════════ 抛出了以下断言 应用父数据时:不正确使用ParentDataWidget 已扩展的ParentDataWidget(flex:1)希望应用的ParentData 将FlexParentData键入已设置为接受的RenderObject 不兼容类型为BoxParentData的ParentData 通常,这意味着扩展的小部件具有错误的祖先 RenderObjectWi
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,
),
],
);
}
}