Added reactive display of _nomorezerodays list contents

This commit is contained in:
anthonycicc 2018-04-21 13:38:41 -04:00
parent 3198de2b89
commit ba829a16e8

View file

@ -22,8 +22,7 @@ class MyApp extends StatelessWidget {
// counter didn't reset back to zero; the application is not restarted. // counter didn't reset back to zero; the application is not restarted.
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
), ),
home: new Scaffold(body: new NoZeroDays(title: 'No Zero Days!')) home: new Scaffold(body: new NoZeroDays(title: 'No Zero Days!')));
);
} }
} }
@ -46,7 +45,9 @@ class NoZeroDays extends StatefulWidget {
} }
class _NoZeroDaysState extends State<NoZeroDays> { class _NoZeroDaysState extends State<NoZeroDays> {
static List<Entry> _firstEntry = <Entry>[Entry(new DateTime.now(), "Made this!")]; static List<Entry> _firstEntry = <Entry>[
Entry(new DateTime.now(), "Made this!")
];
List<Entry> _zerodayslist = new List<Entry>.from(_firstEntry); List<Entry> _zerodayslist = new List<Entry>.from(_firstEntry);
Future<DateTime> _currentDatePicker() { Future<DateTime> _currentDatePicker() {
@ -62,8 +63,15 @@ class _NoZeroDaysState extends State<NoZeroDays> {
return new FloatingActionButton( return new FloatingActionButton(
onPressed: () { onPressed: () {
Future<DateTime> pickedDate = _currentDatePicker(); Future<DateTime> pickedDate = _currentDatePicker();
pickedDate.then((value) => _zerodayslist.add(Entry(value, "nothing"))) pickedDate.then((value) {
.catchError((err) => Scaffold.of(context).showSnackBar(new SnackBar(content: new Text(err.toString())))); setState(() {
if (value != null) _zerodayslist.add(Entry(value, "nothing"));
});
}).catchError((err) {
Scaffold
.of(context)
.showSnackBar(new SnackBar(content: new Text(err.toString())));
});
}, },
tooltip: 'Make a new entry', tooltip: 'Make a new entry',
child: new Icon(Icons.add), child: new Icon(Icons.add),
@ -76,9 +84,8 @@ class _NoZeroDaysState extends State<NoZeroDays> {
onTap: () { onTap: () {
//edit entry //edit entry
}, },
trailing: new Icon( trailing: new Icon(Icons.edit),
Icons.edit );
),);
} }
@override @override
@ -93,8 +100,13 @@ class _NoZeroDaysState extends State<NoZeroDays> {
appBar: new AppBar( appBar: new AppBar(
title: new Text(widget.title), title: new Text(widget.title),
), ),
body: new Scaffold(body: new ListView( body: new Scaffold(body: new ListView.builder(
children: new List<Widget>.from(_zerodayslist.map((entry) => _buildRow(entry)), growable: true), itemBuilder: (context, entry) {
if (entry < _zerodayslist.length) {
return _buildRow(_zerodayslist[entry]);
} else
return new ListTile();
},
)), )),
floatingActionButton: _buildFAB(), floatingActionButton: _buildFAB(),
); );