我的脚手架在底部像这样显示一个栏:
我没有放在那儿(我知道那是脚手架,因为当我将其卸下时,栏消失了。但是我不能不用脚手架就能做到)这是我的代码:
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
void initState() {
// TODO: implement initState
super.initState();
SystemChrome.setEnabledSystemUIOverlays([]);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.red,
body: Column(
children: <Widget>[
Center(
child: Text('Scaffold Bar test'),
),
Container(
height: MediaQuery.of(context).size.height - 88,
child: ListView.builder(itemBuilder: (BuildContext context,int index) {
return Container(
height: 40.0,
width: MediaQuery.of(context).size.width,
color: index % 2 == 0 ? Colors.blue : Colors.orange,
);
}),
),
],
),
);
}
}
答案 0 :(得分:1)
在resizeToAvoidBottomPadding: false
中设置Scaffold
。
然后将MediaQuery.removePadding
与removeTop: true
一起使用,以除去ListView.builder
顶部不必要的填充。
使用Expanded
而不是从MediaQuery
获取高度。
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
void initState() {
// TODO: implement initState
super.initState();
SystemChrome.setEnabledSystemUIOverlays([]);
}
@override
Widget build(BuildContext context) {
return MediaQuery.removePadding(
context: context,
removeTop: true,
child: Scaffold(
backgroundColor: Colors.red,
resizeToAvoidBottomPadding: false,
body: Column(
children: <Widget>[
Center(
child: Text('Scaffold Bar test'),
),
Expanded(
child: ListView.builder(itemBuilder: (BuildContext context,int index) {
return Container(
height: 40.0,
width: MediaQuery.of(context).size.width,
color: index % 2 == 0 ? Colors.blue : Colors.orange,
);
}),
),
],
),
),
);
}
}