1
1
import 'package:flutter/cupertino.dart' ;
2
2
import 'package:flutter/material.dart' ;
3
3
4
+ import 'music_player_screen.dart' ;
5
+
4
6
void main () => runApp (App ());
5
7
8
+ GlobalKey <ScaffoldState > scaffoldState = GlobalKey ();
9
+
6
10
class App extends StatelessWidget {
7
11
@override
8
12
Widget build (BuildContext context) {
@@ -16,15 +20,26 @@ class App extends StatelessWidget {
16
20
}
17
21
}
18
22
19
- class HomeScreen extends StatelessWidget {
23
+ class HomeScreen extends StatefulWidget {
24
+ @override
25
+ _HomeScreenState createState () => _HomeScreenState ();
26
+ }
27
+
28
+ class _HomeScreenState extends State <HomeScreen > {
20
29
List <Song > listSong = List ();
21
30
31
+ @override
32
+ void initState () {
33
+ initListSong ();
34
+ super .initState ();
35
+ }
36
+
22
37
@override
23
38
Widget build (BuildContext context) {
24
39
var mediaQuery = MediaQuery .of (context);
25
- initListSong ();
26
40
27
41
return Scaffold (
42
+ key: scaffoldState,
28
43
body: Stack (
29
44
children: < Widget > [
30
45
_buildWidgetAlbumCover (mediaQuery),
@@ -117,30 +132,35 @@ class HomeScreen extends StatelessWidget {
117
132
itemCount: listSong.length,
118
133
itemBuilder: (BuildContext context, int index) {
119
134
Song song = listSong[index];
120
- return Row (
121
- children: < Widget > [
122
- Expanded (
123
- child: Text (
124
- song.title,
135
+ return GestureDetector (
136
+ onTap: () {
137
+ _navigatorToMusicPlayerScreen (song.title);
138
+ },
139
+ child: Row (
140
+ children: < Widget > [
141
+ Expanded (
142
+ child: Text (
143
+ song.title,
144
+ style: TextStyle (
145
+ fontWeight: FontWeight .w600,
146
+ fontFamily: "Campton_Light" ,
147
+ ),
148
+ overflow: TextOverflow .ellipsis,
149
+ ),
150
+ ),
151
+ Text (
152
+ song.duration,
125
153
style: TextStyle (
126
- fontWeight: FontWeight .w600,
127
- fontFamily: "Campton_Light" ,
154
+ color: Colors .grey,
128
155
),
129
- overflow: TextOverflow .ellipsis,
130
156
),
131
- ),
132
- Text (
133
- song.duration,
134
- style: TextStyle (
157
+ SizedBox (width: 24.0 ),
158
+ Icon (
159
+ Icons .more_horiz,
135
160
color: Colors .grey,
136
161
),
137
- ),
138
- SizedBox (width: 24.0 ),
139
- Icon (
140
- Icons .more_horiz,
141
- color: Colors .grey,
142
- ),
143
- ],
162
+ ],
163
+ ),
144
164
);
145
165
},
146
166
),
@@ -190,13 +210,20 @@ class HomeScreen extends StatelessWidget {
190
210
),
191
211
backgroundColor: Color (0xFF7D9AFF ),
192
212
onPressed: () {
193
- print ( "play all tapped" );
213
+ _navigatorToMusicPlayerScreen (listSong[ 0 ].title );
194
214
},
195
215
),
196
216
),
197
217
);
198
218
}
199
219
220
+ void _navigatorToMusicPlayerScreen (String title) {
221
+ Navigator .of (scaffoldState.currentContext)
222
+ .push (MaterialPageRoute (builder: (context) {
223
+ return MusicPlayerScreen (title);
224
+ }));
225
+ }
226
+
200
227
Widget _buildWidgetActionAppBar (MediaQueryData mediaQuery) {
201
228
return Padding (
202
229
padding: EdgeInsets .only (
0 commit comments