1. ListView 和 GridView 组合一块滚动
问题: GridView 里的 元素 不能设置 大小, 只能通过修改 childAspectRatio 来控制宽高比
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("首页"),
),
backgroundColor: Color(0xfff1f1f1),
body: ListView(
children: [
Container(
height: 200,
color: Colors.black12,
child: Center(child: Text("顶部")),
),
Container(
height: 300,
margin: EdgeInsets.only(top: 20),
child: GridView(
// 设置滚动的方式
physics: NeverScrollableScrollPhysics(), // 禁止滚动
padding: EdgeInsets.all(0),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4,
),
children: [
_createGridViewItem(Colors.primaries[0]),
_createGridViewItem(Colors.primaries[1]),
_createGridViewItem(Colors.primaries[2]),
_createGridViewItem(Colors.primaries[3]),
_createGridViewItem(Colors.primaries[4]),
_createGridViewItem(Colors.primaries[5]),
_createGridViewItem(Colors.primaries[6]),
_createGridViewItem(Colors.primaries[7]),
_createGridViewItem(Colors.primaries[8]),
],
),
)
],
),
);
}
_createGridViewItem(Color color) {
return Container(
color: color,
);
}
}