【发布时间】:2021-05-19 14:44:32
【问题描述】:
如果我访问“添加书”窗口,但不是文本字段只是空白页面,我遇到了元素层次结构的问题,因为 atm 会出现白屏。 我确实收到了这些错误:
- 需要-绘制需要-合成-位-更新
- RenderRepaintBoundary#5e192 relayoutBoundary=up1 NEEDS-PAINT 失败
- 断言:第 1785 行第 12 行:'hasSize'
- [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:无法对从未布局过的渲染框进行测试。
也许有人可以解释我正在做的错误以更好地理解它。提前谢谢!
@override
Widget build(BuildContext context) {
return Scaffold(
//resizeToAvoidBottomPadding: false,
appBar: AppBar(title: Text("Add book")),
body: Container(
child: Form(
key: _formKey,
child: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: <Widget>[
// Book name
Padding(
padding: EdgeInsets.all(20.0),
child: Container(
//height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(20)),
),
//alignment: Alignment.center,
child: Container(
padding: const EdgeInsets.only(
top: 10, bottom: 10, left: 20, right: 20),
decoration: new BoxDecoration(
color: Color(0x70487bea),
borderRadius:
new BorderRadius.all(Radius.circular(30))),
child: TextFormField(
controller: nameController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: " Write name",
hintStyle: TextStyle(color: Colors.grey[900]),
),
),
),
),
),
// Author
Padding(
padding: EdgeInsets.all(20.0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(20)),
),
//alignment: Alignment.center,
child: Container(
padding: const EdgeInsets.only(
top: 10, bottom: 10, left: 20, right: 20),
decoration: new BoxDecoration(
color: Color(0x70487bea),
borderRadius:
new BorderRadius.all(Radius.circular(30))),
child: TextFormField(
controller: authorController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: " Write name",
hintStyle: TextStyle(color: Colors.grey[900]),
),
),
),
),
),
// Category
Padding(
padding: EdgeInsets.all(20.0),
child: DropdownButtonFormField(
value: dropdownValue,
icon: Icon(Icons.arrow_downward),
decoration: InputDecoration(
labelText: "Choose category",
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
//alignment: Alignment.center,
items: listOfCategories.map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
),
),
//temp placement
// Submit
Flexible(
child: Padding(
padding: EdgeInsets.all(20.0),
child: isLoading
? CircularProgressIndicator()
: Container(
alignment: Alignment.center,
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.symmetric(vertical: 10),
child: RaisedButton(
onPressed: () {
if (_formKey.currentState.validate()) {
setState(() {
isLoading = true;
});
//getUsername();
addToFb();
//dispose();
}
},
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
side: BorderSide(color: Colors.indigo[500])),
color: Colors.indigo[400],
child: Text(
"Save",
style: TextStyle(
fontSize: 16.0, color: Colors.white),
),
padding: EdgeInsets.fromLTRB(35, 15, 35, 15),
),
...
【问题讨论】: