diff --git a/README.md b/README.md index 6eee73d3..23a57af5 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ The code for Springy Widget is taken and refactored from (https://github.com/mat ## miscellaneous widgets - + ## Blog diff --git a/lib/core/presentation/routes.dart b/lib/core/presentation/routes.dart index 073e0853..ec2cf8d7 100644 --- a/lib/core/presentation/routes.dart +++ b/lib/core/presentation/routes.dart @@ -15,6 +15,7 @@ import 'package:flutter_ui_challenges/src/pages/misc/bottomsheet.dart'; import 'package:flutter_ui_challenges/src/pages/food/cake.dart'; import 'package:flutter_ui_challenges/src/pages/misc/image_popup.dart'; import 'package:flutter_ui_challenges/src/pages/misc/musicplayer.dart'; +import 'package:flutter_ui_challenges/src/pages/misc/musicplayer2.dart'; import 'package:flutter_ui_challenges/src/pages/onboarding/intro6.dart'; import 'package:flutter_ui_challenges/src/pages/settings/settings1.dart'; import 'package:flutter_ui_challenges/src/pages/settings/settings2.dart'; @@ -274,10 +275,11 @@ final List pages = [ SubMenuItem("Onboarding 5", Intro5(), path: Intro5.path), ]), MenuItem(title: "Miscellaneous", items: [ + + SubMenuItem("Music Player Two", MusicPlayerTwoPage(), + path: MusicPlayerTwoPage.path), SubMenuItem("Image Popup", ImagePopupPage(), path: ImagePopupPage.path), - SubMenuItem("Event Invitation", InvitationPageOne(), - path: InvitationPageOne.path), SubMenuItem("Chat Messaages", ChatTwoPage(), path: ChatTwoPage.path), SubMenuItem("Form Elements", FormElementPage(), path: FormElementPage.path), diff --git a/lib/src/pages/misc/musicplayer2.dart b/lib/src/pages/misc/musicplayer2.dart new file mode 100644 index 00000000..a3c2f229 --- /dev/null +++ b/lib/src/pages/misc/musicplayer2.dart @@ -0,0 +1,146 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_swiper/flutter_swiper.dart'; +import 'package:flutter_ui_challenges/core/presentation/res/assets.dart'; +import 'package:flutter_ui_challenges/src/pages/invitation/inlanding.dart'; + +class MusicPlayerTwoPage extends StatelessWidget { + static final String path = "lib/src/pages/misc/musicplayer2.dart"; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + iconTheme: IconThemeData(color: Colors.black), + title: Text( + 'Music Player', + style: TextStyle(color: Colors.black), + ), + actions: [ + MaterialButton( + padding: const EdgeInsets.all(0), + elevation: 0, + shape: CircleBorder(), + onPressed: () {}, + child: CircleAvatar( + maxRadius: 15.0, + backgroundImage: CachedNetworkImageProvider(avatars[0]), + ), + ), + ], + ), + body: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 250, + child: Swiper( + viewportFraction: 0.8, + scale: 0.9, + itemCount: 3, + itemBuilder: (context, index) => Stack( + children: [ + Container( + decoration: BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.circular(10.0), + image: DecorationImage( + image: CachedNetworkImageProvider(images[index]), + fit: BoxFit.cover, + )), + ), + Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.0), + color: Colors.blue.withOpacity(0.5)), + child: Text( + "Travel Series", + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 24.0, + ), + ), + ) + ], + ), + ), + ), + const SizedBox(height: 10.0), + Container( + width: double.infinity, + padding: const EdgeInsets.all(16.0), + color: Colors.black, + child: Text( + "My Playlist, 348 Songs".toUpperCase(), + style: whiteText, + ), + ), + ListTile( + leading: Icon(Icons.pause), + title: Text("Ariana Grande"), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Daydreaming"), + const SizedBox(height: 10.0), + ], + ), + trailing: Text("3:45"), + ), + Padding( + padding: const EdgeInsets.only(left: 70.0,right: 20), + child: Stack( + children: [ + Container( + width: double.infinity, + height: 1.0, + color: Colors.grey, + ), + Container( + width: MediaQuery.of(context).size.width-300, + height: 1.0, + color: Colors.black, + ), + ], + ), + ), + ListTile( + leading: Icon(Icons.play_arrow), + title: Text("Beyonce"), + subtitle: Text("Halo"), + trailing: Text("3:05"), + ), + ListTile( + leading: Icon(Icons.play_arrow), + title: Text("Don't let me down"), + subtitle: Text("Coldplay"), + trailing: Text("3:05"), + ), + ListTile( + leading: Icon(Icons.play_arrow), + title: Text("Just the way you are"), + subtitle: Text("Bruno Mars"), + trailing: Text("3:05"), + ), + ListTile( + leading: Icon(Icons.play_arrow), + title: Text("Beyonce"), + subtitle: Text("Halo"), + trailing: Text("3:05"), + ), + ListTile( + leading: Icon(Icons.play_arrow), + title: Text("Just the way you are"), + subtitle: Text("Bruno Mars"), + trailing: Text("3:05"), + ), + ], + ), + ), + ); + } +} diff --git a/screenshots/musicplayer2.png b/screenshots/musicplayer2.png new file mode 100644 index 00000000..27a4a196 Binary files /dev/null and b/screenshots/musicplayer2.png differ