repeat_after_page.dart 1.8 KB
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';
import 'package:wow_english/repeatafter/widgets/repeat_after_item.dart';

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)
                  );
                }),
          ),
        ),
      );
    },
  );
}