diff --git a/assets/images/home.png b/assets/images/home.png new file mode 100644 index 0000000..95b1430 --- /dev/null +++ b/assets/images/home.png diff --git a/assets/images/listen.png b/assets/images/listen.png new file mode 100644 index 0000000..bd8bcd4 --- /dev/null +++ b/assets/images/listen.png diff --git a/assets/images/shop.png b/assets/images/shop.png new file mode 100644 index 0000000..8822195 --- /dev/null +++ b/assets/images/shop.png diff --git a/assets/images/video.png b/assets/images/video.png new file mode 100644 index 0000000..05d665a --- /dev/null +++ b/assets/images/video.png diff --git a/lib/app/app.dart b/lib/app/app.dart index 75c983c..3766fce 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -11,8 +11,6 @@ class App extends StatelessWidget { @override Widget build(BuildContext context) { return ScreenUtilInit( - minTextAdapt: true, - splitScreenMode: true, designSize: const Size(667, 375), builder: (_,__) => MultiBlocProvider( providers: [ diff --git a/lib/home/home_page.dart b/lib/home/home_page.dart new file mode 100644 index 0000000..c82d20c --- /dev/null +++ b/lib/home/home_page.dart @@ -0,0 +1,24 @@ +import 'package:flutter/material.dart'; +import 'package:wow_english/home/widgets/home_tab_header_widget.dart'; + +class HomePage extends StatelessWidget { + const HomePage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SafeArea( + child: Container( + color: Colors.white, + child: const Center( + child: Column( + children: [ + HomeTabHeaderWidget(), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/home/widgets/home_tab_header_widget.dart b/lib/home/widgets/home_tab_header_widget.dart new file mode 100644 index 0000000..8cad2f3 --- /dev/null +++ b/lib/home/widgets/home_tab_header_widget.dart @@ -0,0 +1,63 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:wow_english/common/extension/string_extension.dart'; + +class HomeTabHeaderWidget extends StatelessWidget { + const HomeTabHeaderWidget({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + height: 45.h, + width: double.infinity, + color: Colors.purple, + padding: EdgeInsets.symmetric(horizontal: 9.5.w), + child: Row( + children: [ + ClipRRect( + borderRadius:BorderRadius.circular(21), + child: Image.network( + 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Faa1c2213-820a-4223-8757-5f8cee318a28%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1688713226&t=192b18a613683bcdc5bd76f65c9ff032', + height: 42, + width: 42, + fit: BoxFit.fill, + ), + ), + Container( + color: Colors.white, + margin: const EdgeInsets.only(left: 7), + padding: const EdgeInsets.all(7.0), + child: const Text('franky'), + ), + 20.horizontalSpace, + const Expanded( + child:Text( + 'learn wow!yellow', + textAlign:TextAlign.left, + style: TextStyle( + color: Colors.white, + fontSize: 30.0 + ), + ) + ), + IconButton( + onPressed: (){}, + icon: Image.asset('video'.assetPng) + ), + IconButton( + onPressed: (){}, + icon: Image.asset('home'.assetPng) + ), + IconButton( + onPressed: (){}, + icon: Image.asset('listen'.assetPng) + ), + IconButton( + onPressed: (){}, + icon: Image.asset('shop'.assetPng) + ) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/login/login_page.dart b/lib/login/login_page.dart index 39b7e3f..28fc594 100644 --- a/lib/login/login_page.dart +++ b/lib/login/login_page.dart @@ -3,6 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/login/blocs/login_bloc.dart'; +import 'package:wow_english/route/route.dart'; class LoginPage extends StatelessWidget { const LoginPage({super.key}); @@ -294,7 +295,9 @@ class LoginPage extends StatelessWidget { ), 5.horizontalSpace, GestureDetector( - onTap: () => bloc.add(ForgetPasswordEvent()), + onTap: () { + Navigator.of(context).pushNamed(AppRouteName.home); + }, child: Container( width: 100.w, height: 55.h, diff --git a/lib/route/route.dart b/lib/route/route.dart index 93b9927..baf9d24 100644 --- a/lib/route/route.dart +++ b/lib/route/route.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:wow_english/app/splash_page.dart'; +import 'package:wow_english/home/home_page.dart'; import 'package:wow_english/login/login_page.dart'; import 'package:wow_english/tab/tab_page.dart'; @@ -8,6 +9,7 @@ import 'package:wow_english/tab/tab_page.dart'; class AppRouteName { static const String splash = 'splash'; static const String login = 'login'; + static const String home = 'home'; static const String tab = '/'; } @@ -26,6 +28,8 @@ class AppRouter { transitionsBuilder: (_, __, ___, child) => child); case AppRouteName.login: return CupertinoPageRoute(builder: (_) => const LoginPage()); + case AppRouteName.home: + return CupertinoPageRoute(builder: (_) => const HomePage()); case AppRouteName.tab: return PageRouteBuilder( opaque: false,