Commit c3a17517 authored by Brian Egan's avatar Brian Egan

Update GridView to use a builder

parent 9cea0574
...@@ -33,50 +33,56 @@ class FontAwesomeGalleryHomeState extends State<FontAwesomeGalleryHome> { ...@@ -33,50 +33,56 @@ class FontAwesomeGalleryHomeState extends State<FontAwesomeGalleryHome> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final filteredIcons = icons
.where((icon) =>
_searchTerm.isEmpty ||
icon.title.toLowerCase().startsWith(_searchTerm.toLowerCase()))
.toList();
final orientation = MediaQuery.of(context).orientation;
return new Scaffold( return new Scaffold(
appBar: _isSearching ? _searchBar(context) : _titleBar(), appBar: _isSearching ? _searchBar(context) : _titleBar(),
body: new GridView.count( body: new GridView.builder(
crossAxisCount: itemCount: filteredIcons.length,
MediaQuery.of(context).orientation == Orientation.portrait gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
? 2 crossAxisCount: orientation == Orientation.portrait ? 2 : 3,
: 3, ),
children: icons itemBuilder: (context, index) {
.where((icon) => final icon = filteredIcons[index];
_searchTerm.isEmpty ||
icon.title.toLowerCase().startsWith(_searchTerm.toLowerCase())) return new InkWell(
.map((icon) => new InkWell( onTap: () {
onTap: () { Navigator.push(
Navigator.push( context,
context, new MaterialPageRoute<Null>(
new MaterialPageRoute<Null>( builder: (BuildContext context) {
builder: (BuildContext context) { return new Container(
return new Container( color: Colors.white,
color: Colors.white, child: new SizedBox.expand(
child: new SizedBox.expand( child: new Hero(
child: new Hero( tag: icon,
tag: icon, child: new Icon(
child: new Icon( icon.iconData,
icon.iconData, size: 100.0,
size: 100.0, ),
), ),
),
),
);
},
), ),
); );
}, },
child: new Column( ),
mainAxisAlignment: MainAxisAlignment.center, );
children: <Widget>[ },
new Hero(tag: icon, child: new Icon(icon.iconData)), child: new Column(
new Container( mainAxisAlignment: MainAxisAlignment.center,
padding: new EdgeInsets.only(top: 16.0), children: <Widget>[
child: new Text(icon.title)) new Hero(tag: icon, child: new Icon(icon.iconData)),
], new Container(
), padding: new EdgeInsets.only(top: 16.0),
)) child: new Text(icon.title))
.toList()), ],
),
);
}),
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment