class GrideMenu extends StatelessWidget {
GrideMenu({
Key key,
@required this.items,
@required this.onTap,
@required this.crossAxisCount
}):super(key:key);
final List items;
final Function onTap;
final int crossAxisCount;
Widget build(context) {
final int more = items.length % crossAxisCount;
final int minCount = items.length ~/ crossAxisCount;
final int maxCount = more == 0 ? minCount : minCount + 1;
final screenWidth = MediaQuery.of(context).size.width;
final itemWidth = screenWidth /crossAxisCount;
return Container(
width: context.width,
padding: EdgeInsets.all(8),
height: maxCount * (itemWidth - 10.0),
child: GridView.builder(
physics: NeverScrollableScrollPhysics(),
itemCount: items.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: crossAxisCount,
mainAxisSpacing: 5.0,
crossAxisSpacing: 5.0,
childAspectRatio: 1),
itemBuilder: (ctx, index) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
GestureDetector(
onTap: onTap,
child: Container(
color:Color(0xff0099ff)
),
),
],
);
}),
);
}
}