Skip to content

Commit 63eb39c

Browse files
committed
Create UI Music Player
1 parent 1c1ea25 commit 63eb39c

6 files changed

+336
-22
lines changed

Diff for: assets/ariana_grande_artist_photo.jpg

20.9 KB
Loading

Diff for: assets/ariana_grande_artist_photo_2.jpg

26.7 KB
Loading

Diff for: assets/ariana_grande_artist_photo_3.png

111 KB
Loading

Diff for: lib/main.dart

+49-22
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import 'package:flutter/cupertino.dart';
22
import 'package:flutter/material.dart';
33

4+
import 'music_player_screen.dart';
5+
46
void main() => runApp(App());
57

8+
GlobalKey<ScaffoldState> scaffoldState = GlobalKey();
9+
610
class App extends StatelessWidget {
711
@override
812
Widget build(BuildContext context) {
@@ -16,15 +20,26 @@ class App extends StatelessWidget {
1620
}
1721
}
1822

19-
class HomeScreen extends StatelessWidget {
23+
class HomeScreen extends StatefulWidget {
24+
@override
25+
_HomeScreenState createState() => _HomeScreenState();
26+
}
27+
28+
class _HomeScreenState extends State<HomeScreen> {
2029
List<Song> listSong = List();
2130

31+
@override
32+
void initState() {
33+
initListSong();
34+
super.initState();
35+
}
36+
2237
@override
2338
Widget build(BuildContext context) {
2439
var mediaQuery = MediaQuery.of(context);
25-
initListSong();
2640

2741
return Scaffold(
42+
key: scaffoldState,
2843
body: Stack(
2944
children: <Widget>[
3045
_buildWidgetAlbumCover(mediaQuery),
@@ -117,30 +132,35 @@ class HomeScreen extends StatelessWidget {
117132
itemCount: listSong.length,
118133
itemBuilder: (BuildContext context, int index) {
119134
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,
125153
style: TextStyle(
126-
fontWeight: FontWeight.w600,
127-
fontFamily: "Campton_Light",
154+
color: Colors.grey,
128155
),
129-
overflow: TextOverflow.ellipsis,
130156
),
131-
),
132-
Text(
133-
song.duration,
134-
style: TextStyle(
157+
SizedBox(width: 24.0),
158+
Icon(
159+
Icons.more_horiz,
135160
color: Colors.grey,
136161
),
137-
),
138-
SizedBox(width: 24.0),
139-
Icon(
140-
Icons.more_horiz,
141-
color: Colors.grey,
142-
),
143-
],
162+
],
163+
),
144164
);
145165
},
146166
),
@@ -190,13 +210,20 @@ class HomeScreen extends StatelessWidget {
190210
),
191211
backgroundColor: Color(0xFF7D9AFF),
192212
onPressed: () {
193-
print("play all tapped");
213+
_navigatorToMusicPlayerScreen(listSong[0].title);
194214
},
195215
),
196216
),
197217
);
198218
}
199219

220+
void _navigatorToMusicPlayerScreen(String title) {
221+
Navigator.of(scaffoldState.currentContext)
222+
.push(MaterialPageRoute(builder: (context) {
223+
return MusicPlayerScreen(title);
224+
}));
225+
}
226+
200227
Widget _buildWidgetActionAppBar(MediaQueryData mediaQuery) {
201228
return Padding(
202229
padding: EdgeInsets.only(

0 commit comments

Comments
 (0)