-
Notifications
You must be signed in to change notification settings - Fork 23
/
checkbox_setState_screen.dart
78 lines (73 loc) · 2.34 KB
/
checkbox_setState_screen.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import 'package:flutter/material.dart';
import 'package:smtutorial/models/drink.dart';
import 'package:smtutorial/widgets/drinks_widget.dart';
import '../constants.dart';
// Widget
class CheckBoxSetStateScreen extends StatefulWidget {
@override
_CheckBoxSetStateScreenState createState() => _CheckBoxSetStateScreenState();
}
class _CheckBoxSetStateScreenState extends State<CheckBoxSetStateScreen> {
List<Drink> drinks = [
Drink("Water", false),
Drink("Cuba Libre", false),
Drink("Pina Colada", false),
Drink("Havana Cola", false)
];
@override
Widget build(BuildContext context) {
var selectedDrinks = drinks.where((element) => element.selected);
return Scaffold(
appBar: AppBar(
title: Text("Cocktail Order"),
),
body: Container(
decoration: kMainBackgroundImage,
child: SafeArea(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
padding: EdgeInsets.all(8.0),
decoration: kWhiteBackground,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Drinks tonight",
style: Theme.of(context).textTheme.headline4,
),
...drinks
.map(
(drink) => DrinksWidget(
drink: drink,
onChanged: (value) {
setState(() {
drink.selected = value;
});
},
),
)
.toList(),
Text(
"The order is: ",
style: Theme.of(context).textTheme.headline4,
),
Expanded(
child: ListView.builder(
itemBuilder: (context, index) => ListTile(
title: Text(
selectedDrinks.toList()[index].name,
),
),
itemCount: selectedDrinks.length,
),
),
],
),
),
),
),
),
);
}
}