例如,我有一个很长的代码。
@override
Widget build(BuildContext context) {
print('building');
WidgetsBinding.instance
.addPostFrameCallback((_) => changeThemeAfterBuild(context));
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back_ios),
onPressed: () {
_logEntryDetailBloc.dispose();
Navigator.pop(context);
},
),
title: Text(this.widget.title),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(2.0),
child: new Material(
child: Padding(
padding: const EdgeInsets.all(6.0),
child: Container(
width: MediaQuery.of(context).size.width - 20,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
new Text(
'Message:',
style: TextStyle(
fontSize: 22,
color: Color.fromRGBO(127, 127, 127, 1)),
),
new Text(
widget.logEntry.message,
style: TextStyle(fontSize: 20),
),
StreamBuilder(
stream: _logEntryDetailBloc.logEntryDetailStream,
builder: (context, snapshot) {
print("has detail data ${snapshot.hasData}");
print(snapshot.data);
if (snapshot.hasData) {
var logEntry = (snapshot.data as LogEntry);
if (logEntry.logLevel.name == ERROR)
return Container(
child: ErrorDetailScreenContainer(),
height:
MediaQuery.of(context).size.height - 156,
);
return Container(
child: Text(snapshot.data.toString()),
height:
MediaQuery.of(context).size.height - 200);
} else {
return new Image(
image: new AssetImage("images/loader.gif"));
}
}),
],
),
),
)),
),
],
),
);
}
现在的问题是,由于我正在抖动,因此对象被嵌套,每个对象都是其他对象的子对象。 因此,当父对象通过嵌套变大时。变得有点难以理解,括号匹配也变得困难
解决方案我正在寻找的东西是这样的:
@override
Widget build(BuildContext context) {
print('building');
WidgetsBinding.instance
.addPostFrameCallback((_) => changeThemeAfterBuild(context));
return Scaffold(
appBar: AppBar(...), // I folded here
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(2.0),
child: new Material(
child: Padding(
padding: const EdgeInsets.all(6.0),
child: Container(
width: MediaQuery.of(context).size.width - 20,
child: Column(...) // I foldere here too
)
),
),
),
],
),
);
}
像这样可能。 或我可以执行的其他任何选择,以使其看起来更干净。