Using GridView.count to create a grid that's two tiles wide in portrait mode and three tiles wide in landscape mode
Flexible(
child: GridView.count(
crossAxisCount: (orientation == Orientaation.portrait) ? 2 : 3,
mainAxisSpacing: 4.0,
crossAxisSpacing: 4.0,
padding: const EdgeInsets.all(4.0),
childAspectRatio: (orientation == Orientaation.portrait) ? 1.0 : 1.3,
children: someList.map(
(catData) => aListItemWidget(catData)
).toList()
)
);