Skip to content

Instantly share code, notes, and snippets.

@kmvignesh
Created October 4, 2020 13:07
Show Gist options
  • Select an option

  • Save kmvignesh/256f96f4820d306c6db98b49159b92f9 to your computer and use it in GitHub Desktop.

Select an option

Save kmvignesh/256f96f4820d306c6db98b49159b92f9 to your computer and use it in GitHub Desktop.
GridView demo
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: ListViewDemo(),
);
}
}
class ListViewDemo extends StatefulWidget {
@override
_ListViewDemoState createState() => _ListViewDemoState();
}
class _ListViewDemoState extends State<ListViewDemo> {
var _items = List<ListItem>();
@override
void initState() {
super.initState();
_items.add(ListItem("Title 1", "Message 1"));
_items.add(ListItem("Title 2", "Message 2"));
_items.add(ListItem("Title 3", "Message 3"));
_items.add(ListItem("Title 4", "Message 4"));
_items.add(ListItem("Title 5", "Message 5"));
_items.add(ListItem("Title 6", "Message 6"));
_items.add(ListItem("Title 7", "Message 7"));
}
@override
Widget build(BuildContext context) {
var _screenWidth = MediaQuery.of(context).size.width;
var _itemCount = (_screenWidth / 200).ceil();
return Scaffold(
appBar: AppBar(
title: Text("GridView Demo"),
),
body: GridView.builder(
scrollDirection: Axis.vertical,
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200,
childAspectRatio: (_screenWidth / _itemCount) / 200),
itemBuilder: (BuildContext context, int index) {
return listItem(_items[index].title, _items[index].message);
},
itemCount: _items.length),
);
}
Widget listItem(String title, String message) {
return Card(
child: SizedBox(
height: 200,
width: 250,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
title,
style: TextStyle(fontWeight: FontWeight.bold),
),
Text(message),
],
),
),
),
);
}
}
class ListItem {
String title;
String message;
ListItem(this.title, this.message);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment