Blame view

lib/home/home_page.dart 4.09 KB
95edef4f   liangchengyou   feat:更新适配代码
1
  import 'package:flutter/material.dart';
60e47f7c   liangchengyou   feat:课程选择功能
2
  import 'package:flutter_bloc/flutter_bloc.dart';
d35a4e87   liangchengyou   feat:磨耳朵功能UI
3
4
5
  import 'package:flutter_easyloading/flutter_easyloading.dart';
  import 'package:flutter_screenutil/flutter_screenutil.dart';
  import 'package:wow_english/common/extension/string_extension.dart';
60e47f7c   liangchengyou   feat:课程选择功能
6
  import 'package:wow_english/home/bloc/home_bloc.dart';
d35a4e87   liangchengyou   feat:磨耳朵功能UI
7
  import 'package:wow_english/home/widgets/home_lesson_item_widget.dart';
95edef4f   liangchengyou   feat:更新适配代码
8
  import 'package:wow_english/home/widgets/home_tab_header_widget.dart';
60e47f7c   liangchengyou   feat:课程选择功能
9
  import 'package:wow_english/route/route.dart';
95edef4f   liangchengyou   feat:更新适配代码
10
11
12
13
14
15
  
  class HomePage extends StatelessWidget {
    const HomePage({super.key});
  
    @override
    Widget build(BuildContext context) {
60e47f7c   liangchengyou   feat:课程选择功能
16
      return BlocProvider(
d35a4e87   liangchengyou   feat:磨耳朵功能UI
17
18
19
        create: (context) => HomeBloc(PageController(
          initialPage: 0,
        )),
60e47f7c   liangchengyou   feat:课程选择功能
20
21
22
23
24
25
26
27
28
29
30
31
        child: _HomePageView(),
      );
    }
  }
  
  class _HomePageView extends StatelessWidget {
    void _headerActionEvent(HeaderActionType type) {
      if (type == HeaderActionType.video) {
  
      } else if (type == HeaderActionType.phase) {
        Navigator.of(AppRouter.context).pushNamed(AppRouteName.lesson);
      } else if (type == HeaderActionType.listen) {
d35a4e87   liangchengyou   feat:磨耳朵功能UI
32
33
        Navigator.of(AppRouter.context).pushNamed(AppRouteName.listen);
      } else if (type == HeaderActionType.shop) {
f0d56772   liangchengyou   feat:更新尺寸适配
34
  
60e47f7c   liangchengyou   feat:课程选择功能
35
36
37
38
39
40
41
42
43
      } else {
  
      }
    }
  
    @override
    Widget build(BuildContext context) {
      return BlocListener<HomeBloc,HomeState>(
        listener: (context, state){},
d35a4e87   liangchengyou   feat:磨耳朵功能UI
44
        child: _homeView(),
95edef4f   liangchengyou   feat:更新适配代码
45
46
      );
    }
d35a4e87   liangchengyou   feat:磨耳朵功能UI
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  
    Widget _homeView() => BlocBuilder<HomeBloc,HomeState>(
        builder: (context, state){
          final bloc = BlocProvider.of<HomeBloc>(context);
          return Scaffold(
            body: Container(
              color: Colors.white,
              child:  Center(
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    HomeTabHeaderWidget(
                      actionTap: (HeaderActionType type) {
                        _headerActionEvent(type);
                      },
                    ),
                    Expanded(
                      child: PageView.builder(
                          itemCount: 10,
                          controller: bloc.pageController,
                          pageSnapping: false,
                          onPageChanged: (int index) {
                            EasyLoading.showToast(index.toString());
                          },
                          itemBuilder: (BuildContext context,int index){
                            return const HomeLessonItem();
                            // return Container(
                            //     color:index%2==0?Colors.red:Colors.blue
                            // );
                          })
                      ,
                    ),
                    SafeArea(
                      child: Padding(
                        padding: EdgeInsets.symmetric(horizontal: 13.w),
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            SizedBox(
                              height: 47.h,
                              width: 80.w,
                            ),
                            Container(
                              decoration: BoxDecoration(
                                color: Colors.blue,
                                borderRadius: BorderRadius.circular(14.5.r),
                              ),
                              padding: EdgeInsets.symmetric(vertical: 8.h,horizontal: 24.w),
                              child: Text(
                                '3/67',
                                style: TextStyle(
                                    color: Colors.white,
                                    fontSize: 12.sp
                                ),
                              ),
                            ),
                            Image.asset(
                              'blue-positive'.assetPng,
                              height: 47.h,
                              width: 80.w,
                            ),
                          ],
                        ),
                      ),
                    )
                  ],
                ),
              ),
            ),
          );
        });
95edef4f   liangchengyou   feat:更新适配代码
118
  }