@@ -29,8 +29,7 @@ class MyHomePage extends StatefulWidget {
29
29
}
30
30
31
31
class MyIncrementer {
32
- MyIncrementer (this .increment, this .screen);
33
- final Scaffold ? screen;
32
+ MyIncrementer (this .increment);
34
33
final VoidCallback increment;
35
34
}
36
35
@@ -41,27 +40,26 @@ class _MyHomePageState extends State<MyHomePage> {
41
40
() => setState (() {
42
41
_counter++ ;
43
42
}),
44
- null ,
45
43
);
46
44
47
45
/// Increments counter if current screen contains floating action button.
48
46
void _incrementCounter (BuildContext context) {
49
47
final oldIncrementer = _incrementer;
48
+ final screen = buildScreen (context);
50
49
51
50
_incrementer = MyIncrementer (
52
51
() {
53
- final screen = theScreen;
54
52
if (screen.floatingActionButton != null ) {
55
53
oldIncrementer.increment ();
56
54
}
57
55
},
58
- theScreen,
59
56
);
60
57
61
58
_incrementer.increment ();
62
59
}
63
60
64
- Scaffold get theScreen {
61
+ Scaffold buildScreen (BuildContext context) {
62
+ final theme = Theme .of (context);
65
63
return Scaffold (
66
64
appBar: AppBar (
67
65
title: Text (widget.title),
@@ -80,13 +78,14 @@ class _MyHomePageState extends State<MyHomePage> {
80
78
floatingActionButton: FloatingActionButton (
81
79
onPressed: () => _incrementCounter (context),
82
80
tooltip: 'Increment counter' ,
81
+ foregroundColor: theme.canvasColor,
83
82
child: const Icon (Icons .add),
84
83
),
85
84
);
86
85
}
87
86
88
87
@override
89
- Widget build (BuildContext context) => theScreen ;
88
+ Widget build (BuildContext context) => buildScreen (context) ;
90
89
}
91
90
92
91
class MyCounter extends StatelessWidget {
0 commit comments