Blame view

lib/pages/repeatafter/repeat_after_page.dart 1.93 KB
9d080046   liangchengyou   feat:视频跟读逻辑
1
2
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
9d080046   liangchengyou   feat:视频跟读逻辑
3
  import 'package:wow_english/common/widgets/we_app_bar.dart';
6f617434   liangchengyou   feat:磨耳朵/视频跟读列表页接口调整
4
  import 'package:wow_english/models/follow_read_entity.dart';
4b358e22   liangchengyou   feat:调整文件结构
5
  import 'package:wow_english/pages/repeatafter/widgets/repeat_after_item.dart';
08a0f5a8   liangchengyou   feat:路由方式更新
6
  import 'package:wow_english/route/route.dart';
9d080046   liangchengyou   feat:视频跟读逻辑
7
8
9
10
11
12
13
14
15
  
  import 'bloc/repeat_after_bloc.dart';
  
  class RepeatAfterPage extends StatelessWidget {
    const RepeatAfterPage({super.key});
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
842b7132   liangchengyou   feat:磨耳朵/练习页面调整
16
        create: (context) => RepeatAfterBloc()..add(RequestDataEvent()),
9d080046   liangchengyou   feat:视频跟读逻辑
17
18
19
20
21
22
23
24
25
26
        child: _RepeatAfterPageView(),
      );
    }
  }
  
  class _RepeatAfterPageView extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return BlocListener<RepeatAfterBloc, RepeatAfterState>(
        listener: (context, state) {
08a0f5a8   liangchengyou   feat:路由方式更新
27
  
9d080046   liangchengyou   feat:视频跟读逻辑
28
29
30
31
32
33
        },
        child: _repeatAfterView(),
      );
    }
  
    Widget _repeatAfterView() => BlocBuilder<RepeatAfterBloc, RepeatAfterState>(
c61b3c1a   Key   feat: toast_util....
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
          builder: (context, state) {
            final bloc = BlocProvider.of<RepeatAfterBloc>(context);
            return Scaffold(
              appBar: const WEAppBar(
                titleText: '视频跟读',
                centerTitle: false,
              ),
              body: SafeArea(
                child: Container(
                  alignment: Alignment.center,
                  child: ListView.builder(
                      itemCount: bloc.listData.length,
                      scrollDirection: Axis.horizontal,
                      itemBuilder: (BuildContext context, int index) {
                        FollowReadEntity? entity = bloc.listData[index];
                        return RepeatAfterItem(
08a0f5a8   liangchengyou   feat:路由方式更新
50
51
52
                          tapEvent: () {
                            pushNamed(AppRouteName.readAfterContent);
                          },
c61b3c1a   Key   feat: toast_util....
53
54
55
56
57
58
59
                          entity: entity,
                        );
                      }),
                ),
              ),
            );
          },
9d080046   liangchengyou   feat:视频跟读逻辑
60
        );
9d080046   liangchengyou   feat:视频跟读逻辑
61
  }