您可以使用 childAspectRatio 来做到这一点。
例如:
GridView.builder(
padding: EdgeInsets.symmetric(horizontal: 4),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: 9 / 10,
crossAxisCount: 2,
),
itemCount: 6,
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
color: Colors.grey,
),
child: Column(
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
color: Colors.blue,
),
margin: EdgeInsetsDirectional.only(bottom: 8),
height: MediaQuery.of(context).size.width * 0.4,
),
Text('bla bla'),
],
),
);
},
)