ホームページのコードをチラ見せ

こんにちは!今日もお疲れ様です!

今日も渋谷でずっとバイトしてます笑

早く脱バイトできるようになりたいな〜脱バイトモチベをバイトをして高めてるのなんか面白いですよね笑


今日は、アプリのホーム画面のコードをお見せしようと思います!早速ですが、ホームページのUIはこんな感じ↓

画像1

(昨日と同じ画像使いました)

コードはこんな感じ↓

@override
 Widget build(BuildContext context) {
   double _w = MediaQuery.of(context).size.width;

   return Scaffold(
     backgroundColor: Provider.of<MyTheme>(context, listen: false).checkMode()
         ? Colors.black45
         : Colors.transparent,
     body: Stack(
       children: [
         /// ListView
         ListView(
           physics:
               BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
           children: [
             homePageCardsGroup(
               Colors.blue,
               Icons.analytics_outlined,
               'プロフィール',
               context,
               ProfilePage(),
               Colors.red,
               Icons.leaderboard_outlined,
               'ランキング',
               RankingsPage(),
             ),
             homePageCardsGroup(
               Colors.green,
               Icons.article_sharp,
               'テスト',
               context,
               MathTestList(),
               Colors.purple,
               Icons.help_outline_outlined,
               'クイズ',
               QuizHome(),
             ),
             homePageCardsGroup(
               Colors.blueGrey,
               Icons.feed_outlined,
               'ニュース',
               context,
               NewsPage(),
               Colors.blue,
               Icons.school_outlined,
               '家庭教師',
               TeacherHome(),
             ),
           ],
         ),

         /// SETTING ICON
         Padding(
           padding: EdgeInsets.fromLTRB(0, _w / 9.5, _w / 15, 0),
           child: Row(
             mainAxisAlignment: MainAxisAlignment.end,
             children: [
               InkWell(
                 highlightColor: Colors.transparent,
                 splashColor: Colors.transparent,
                 onTap: () {
                   HapticFeedback.lightImpact();
                   Navigator.push(
                     context,
                     MaterialPageRoute(
                       builder: (context) {
                         return SettingsPage();
                       },
                     ),
                   );
                 },
                 child: ClipRRect(
                   borderRadius: BorderRadius.all(Radius.circular(99)),
                   child: BackdropFilter(
                     filter: ImageFilter.blur(sigmaY: 5, sigmaX: 5),
                     child: Container(
                       height: _w / 8.5,
                       width: _w / 8.5,
                       decoration: BoxDecoration(
                         color: Colors.black.withOpacity(.05),
                         shape: BoxShape.circle,
                       ),
                       child: Center(
                         child: Icon(
                           Icons.settings,
                           size: _w / 17,
                           //  color: Colors.black.withOpacity(.6),
                         ),
                       ),
                     ),
                   ),
                 ),
               ),
             ],
           ),
         ),
       ],
     ),
   );
 }
  Widget homePageCardsGroup(
     Color color,
     IconData icon,
     String title,
     BuildContext context,
     Widget route,
     Color color2,
     IconData icon2,
     String title2,
     Widget route2) {
   double _w = MediaQuery.of(context).size.width;
   return Padding(
     padding: EdgeInsets.only(bottom: _w / 17),
     child: Row(
       mainAxisAlignment: MainAxisAlignment.spaceEvenly,
       children: [
         homePageCard(color, icon, title, context, route),
         homePageCard(color2, icon2, title2, context, route2),
       ],
     ),
   );
 }
Widget homePageCard(Color color, IconData icon, String title,
     BuildContext context, Widget route) {
   double _w = MediaQuery.of(context).size.width;
   return Opacity(
     opacity: _animation.value,
     child: Transform.translate(
       offset: Offset(0, _animation2.value),
       child: InkWell(
         highlightColor: Colors.transparent,
         splashColor: Colors.transparent,
         onTap: () {
           HapticFeedback.lightImpact();
           Navigator.push(
             context,
             MaterialPageRoute(
               builder: (context) {
                 return route;
               },
             ),
           );
         },
         child: Container(
           padding: EdgeInsets.all(15),
           height: _w / 2,
           width: _w / 2.4,
           decoration: BoxDecoration(
             color: Provider.of<MyTheme>(context, listen: false).checkMode()
                 ? Colors.black45
                 : Colors.white,
             boxShadow: [
               BoxShadow(
                 color: Color(0xff040039).withOpacity(.15),
                 blurRadius: 99,
               ),
               BoxShadow(
                 color: color.withAlpha(60),
                 blurRadius: 10.0,
                 spreadRadius: 0.0,
                 offset: Offset(
                   0.0,
                   3.0,
                 ),
               ),
             ],
             border: Border.all(
               width: 3,
               color: color.withOpacity(.1),
             ),
             borderRadius: BorderRadius.all(
               Radius.circular(25),
             ),
           ),
           child: Column(
             mainAxisAlignment: MainAxisAlignment.spaceEvenly,
             children: [
               SizedBox(),
               Container(
                 height: _w / 8,
                 width: _w / 8,
                 decoration: BoxDecoration(
                   color: color.withOpacity(.1),
                   shape: BoxShape.circle,
                 ),
                 child: Icon(
                   icon,
                   color: color.withOpacity(.6),
                 ),
               ),
               Text(
                 title,
                 maxLines: 4,
                 softWrap: true,
                 overflow: TextOverflow.ellipsis,
                 style: TextStyle(
                   fontSize: 18,
                   color:
                       Provider.of<MyTheme>(context, listen: false).checkMode()
                           ? color.withOpacity(.6)
                           : color.withOpacity(.5),
                   fontWeight: FontWeight.w700,
                 ),
                 textAlign: TextAlign.center,
               ),
               SizedBox(),
             ],
           ),
         ),
       ),
     ),
   );
 }

こんな感じで大量のコードを書きました笑

アプリ開発を頑張っている方々に役立ったらいいななんて思ってます!引き続き頑張っていきます!

それではまた明日!


この記事が気に入ったらサポートをしてみませんか?