Introduction of GridView Builder Widget
In Flutter, the GridView builder widget is used to create a scrollable, two-dimensional array of widgets. It is a powerful tool for displaying a collection of items in a grid format.
Below is a brief explanation of the GridView builder widget with key properties:
gridDelegate: Defines the layout of the grid, including the number of columns, their spacing, and the aspect ratio of the items.
GridView.builder(
itemCount: 16,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
itemBuilder: A callback that specifies the widget to be built for each item in the grid.
GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
itemCount: The number of items in the grid.
GridView.builder(
itemCount: 10,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
scrollDirection: Specifies the scrolling direction of the grid. It can be either Axis.horizontal or Axis.vertical.
GridView.builder(
scrollDirection: Axis.horizontal,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
physics: Determines the scrolling physics applied to the grid. Commonly used physics include BouncingScrollPhysics and ClampingScrollPhysics.
GridView.builder(
physics: BouncingScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
shrinkWrap: When set to true, the GridView builder widget will be sized to its contents. Use it when the GridView is a child of another scrollable widget.
GridView.builder(
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8.0,
mainAxisSpacing: 6.0,
),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 50,
width: 50,
color: Color.fromARGB(255, 15, 107, 76),
);
},
),
Final Code: This is the final code with the combination of some above GridView Builder Widget properties.
import 'package:flutter/material.dart';
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: GridView.builder(
itemCount: 12,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(6.0),
child: Container(
height: 50,
width: 50,
color: Colors.orange,
),
);
},
),
);
}
}
These properties offer flexibility in designing grids with various layouts and behaviors. By combining them, you can create visually appealing and responsive grid-based interfaces in Flutter.
Thank for visiting Hybrid App Development
Posted by Hussam HM
