Blame view

lib/pages/repeatafter/repeat_after_page.dart 1.8 KB
9d080046   liangchengyou   feat:视频跟读逻辑
1
2
3
4
5
6
  import 'dart:math';
  
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
  import 'package:flutter_easyloading/flutter_easyloading.dart';
  import 'package:wow_english/common/widgets/we_app_bar.dart';
4b358e22   liangchengyou   feat:调整文件结构
7
  import 'package:wow_english/pages/repeatafter/widgets/repeat_after_item.dart';
9d080046   liangchengyou   feat:视频跟读逻辑
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  
  import 'bloc/repeat_after_bloc.dart';
  
  class RepeatAfterPage extends StatelessWidget {
    const RepeatAfterPage({super.key});
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
        create: (context) => RepeatAfterBloc()..requestData(),
        child: _RepeatAfterPageView(),
      );
    }
  }
  
  class _RepeatAfterPageView extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      return BlocListener<RepeatAfterBloc, RepeatAfterState>(
        listener: (context, state) {
          if (state is RequestDataState) {
            EasyLoading.showToast('网络请求结束');
          }
        },
        child: _repeatAfterView(),
      );
    }
  
    Widget _repeatAfterView() => BlocBuilder<RepeatAfterBloc, RepeatAfterState>(
      builder: (context, state) {
        return Scaffold(
          appBar: const WEAppBar(
            titleText: '视频跟读',
            centerTitle: false,
          ),
          body: SafeArea(
            child: Container(
              alignment: Alignment.center,
              child: ListView.builder(
                  itemCount: 10,
                  scrollDirection: Axis.horizontal,
                  itemBuilder: (BuildContext context,int index){
                    bool unLock = index%3==0;
                    return RepeatAfterItem(
                        unLock: unLock,
                        tapEvent: () {
  
                        },
                        starNumber: !unLock?0:Random().nextInt(5)
                    );
                  }),
            ),
          ),
        );
      },
    );
  }