Last active
February 14, 2020 20:40
-
-
Save ybakos/55cb32becc6c723537155da74de34ba9 to your computer and use it in GitHub Desktop.
CS 492 Week 7 Exploration 4 Exercise ListView
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp(App()); | |
class App extends StatefulWidget { | |
@override | |
State createState() => AppState(); | |
} | |
class AppState extends State<App> { | |
final desserts = List<String>.generate(4, (i) { | |
return 'Dessert Name $i'; | |
}); | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
debugShowCheckedModeBanner: false, | |
home: Scaffold( | |
appBar: AppBar( | |
title: Text('${desserts.length} Desserts') | |
), | |
body: DessertsScreen(desserts: desserts), | |
floatingActionButton: FloatingActionButton( | |
onPressed: () { | |
addDessert('New Cake! ${desserts.length}'); | |
}, | |
child: Icon(Icons.cake) | |
) | |
) | |
); | |
} | |
void addDessert(String name) { | |
// TODO: Add `name` to the list. | |
// Don't forget to ... hmmm... | |
} | |
} | |
class DessertsScreen extends StatefulWidget { | |
final List<String> desserts; | |
DessertsScreen({this.desserts}); | |
@override | |
DessertsScreenState createState() => | |
DessertsScreenState(desserts: desserts); | |
} | |
class DessertsScreenState extends State<DessertsScreen> { | |
final List<String> desserts; | |
DessertsScreenState({this.desserts}); | |
@override | |
Widget build(BuildContext context) { | |
// TODO: Use the builder constructor. | |
// Pass it two arguments. | |
return ListView( | |
children: desserts.map( (name) { | |
return ListTile( | |
leading: FlutterLogo(), | |
trailing: Icon(Icons.cake), | |
title: Text(name), | |
subtitle: Text('Mmmm delicious!') | |
); | |
}).toList() | |
); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp(App()); | |
class App extends StatefulWidget { | |
@override | |
State createState() => AppState(); | |
} | |
class AppState extends State<App> { | |
final desserts = List<String>.generate(4, (i) { | |
return 'Dessert Name $i'; | |
}); | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
debugShowCheckedModeBanner: false, | |
home: Scaffold( | |
appBar: AppBar( | |
title: Text('${desserts.length} Desserts') | |
), | |
body: DessertsScreen(desserts: desserts), | |
floatingActionButton: FloatingActionButton( | |
onPressed: () { | |
addDessert('New Cake! ${desserts.length}'); | |
}, | |
child: Icon(Icons.cake) | |
) | |
) | |
); | |
} | |
void addDessert(String name) { | |
// DONE | |
setState( () { | |
desserts.add(name); | |
}); | |
} | |
} | |
class DessertsScreen extends StatefulWidget { | |
final List<String> desserts; | |
DessertsScreen({this.desserts}); | |
@override | |
DessertsScreenState createState() => | |
DessertsScreenState(desserts: desserts); | |
} | |
class DessertsScreenState extends State<DessertsScreen> { | |
final List<String> desserts; | |
DessertsScreenState({this.desserts}); | |
@override | |
Widget build(BuildContext context) { | |
// DONE | |
return ListView.builder( | |
itemCount: desserts.length, | |
itemBuilder: (context, index) { | |
return ListTile( | |
leading: FlutterLogo(), | |
trailing: Icon(Icons.cake), | |
title: Text(desserts[index]), | |
subtitle: Text('Mmmm delicious!') | |
); | |
} | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment