Skip to content

Commit 6afe030

Browse files
thamaraiselvamthamaraiselvam
authored andcommitted
Share data on tiles click using
Stream data
1 parent ebcb88c commit 6afe030

File tree

3 files changed

+69
-24
lines changed

3 files changed

+69
-24
lines changed

lib/main.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// import 'package:add_numbers/screens/GameScreen.dart';
2+
import 'package:add_numbers/screens/GameScreen.dart';
23
import 'package:add_numbers/screens/LoadingScreen.dart';
34
import 'package:flutter/material.dart';
45

@@ -9,7 +10,7 @@ class MyApp extends StatelessWidget
910
@override
1011
Widget build(BuildContext context) {
1112
return new MaterialApp(
12-
home: new LoadingScreen(),
13+
home: new GameScreen(),
1314
);
1415
}
1516
}

lib/screens/GameScreen.dart

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
1+
import 'dart:async';
12
import 'package:add_numbers/widgets/bgGradient.dart';
23
import 'package:add_numbers/widgets/numberBlockBuilder.dart';
34
import 'package:add_numbers/widgets/targetBlockBuilder.dart';
45
import 'package:flutter/material.dart';
56

6-
class GameScreen extends StatelessWidget {
7+
class GameScreen extends StatefulWidget {
8+
@override
9+
_GameScreenState createState() => _GameScreenState();
10+
}
11+
12+
class _GameScreenState extends State<GameScreen> {
13+
NumberCreater numberCreater = NumberCreater();
14+
15+
@override
16+
void initState() {
17+
super.initState();
18+
numberCreater.stream.listen((data) {
19+
print(data);
20+
});
21+
}
22+
723
@override
824
Widget build(BuildContext context) {
925
return MaterialApp(
@@ -16,11 +32,11 @@ class GameScreen extends StatelessWidget {
1632
SizedBox(
1733
height: 40,
1834
),
19-
buildTargetBlock(title: 'Target', targetValue: 19),
35+
buildTargetBlock(title: 'Target', targetValue: 6),
2036
SizedBox(
2137
height: 6,
2238
),
23-
buildNumberBlocks()
39+
buildNumberBlocks(numberCreater)
2440
],
2541
),
2642
),
Lines changed: 48 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import 'dart:async';
2+
13
import 'package:flutter/material.dart';
24

3-
Container buildNumberBlocks() {
5+
Container buildNumberBlocks(NumberCreater numberCreater) {
46
return Container(
57
// alignment: Alignment.centerLeft,
68
alignment: Alignment(0.0, 0.0),
@@ -10,30 +12,56 @@ Container buildNumberBlocks() {
1012
spacing: 40,
1113
runSpacing: 40,
1214
children: <Widget>[
13-
numberBlock(Colors.white, Colors.yellow, 4),
14-
numberBlock(Colors.white, Colors.red, 9),
15-
numberBlock(Colors.white, Colors.blue, 1),
16-
numberBlock(Colors.white, Colors.yellow, 1),
17-
numberBlock(Colors.white, Colors.red, 1),
18-
numberBlock(Colors.white, Colors.blue, 1),
15+
numberBlock(numberCreater, Colors.white, Colors.yellow, 1),
16+
numberBlock(numberCreater, Colors.white, Colors.red, 3),
17+
numberBlock(numberCreater, Colors.white, Colors.blue, 4),
18+
numberBlock(numberCreater, Colors.white, Colors.yellow, 2),
19+
numberBlock(numberCreater, Colors.white, Colors.red, 10),
20+
numberBlock(numberCreater, Colors.white, Colors.blue, 9),
1921
],
2022
),
2123
);
2224
}
2325

24-
Container numberBlock(Color borderColor, Color bgColor, int value) {
25-
return Container(
26-
width: 120,
27-
height: 120,
28-
alignment: Alignment(0.0, 0.0),
29-
decoration: BoxDecoration(
30-
color: bgColor,
31-
border: Border.all(color: borderColor, width: 5),
32-
borderRadius: new BorderRadius.circular(10)),
33-
child: Text(
34-
value.toString(),
35-
style: TextStyle(
36-
color: Colors.white, fontSize: 40, fontWeight: FontWeight.bold),
26+
Widget numberBlock(NumberCreater numberCreater, Color borderColor, Color bgColor, int value) {
27+
bool isSelected = false;
28+
return Material(
29+
child: InkWell(
30+
onTap: () {
31+
isSelected = isSelected ? false : true;
32+
print(isSelected);
33+
bgColor = Colors.red;
34+
print(bgColor);
35+
numberCreater.setCount(value);
36+
}, // handle your onTap here
37+
child: Container(
38+
width: 120,
39+
height: 120,
40+
alignment: Alignment(0.0, 0.0),
41+
decoration: BoxDecoration(
42+
color: bgColor,
43+
border: Border.all(color: borderColor, width: 5),
44+
borderRadius: BorderRadius.circular(10)),
45+
child: Text(
46+
value.toString(),
47+
style: TextStyle(
48+
color: Colors.white, fontSize: 40, fontWeight: FontWeight.bold),
49+
),
50+
// child: ,
51+
),
3752
),
3853
);
3954
}
55+
56+
class NumberCreater {
57+
var _count = 1;
58+
59+
void setCount(int count){
60+
this._count = count;
61+
_controller.sink.add(count);
62+
}
63+
64+
final _controller = StreamController<int>();
65+
66+
Stream<int> get stream => _controller.stream;
67+
}

0 commit comments

Comments
 (0)