repeat_after_page.dart 1.88 KB
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/models/follow_read_entity.dart';
import 'package:wow_english/pages/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) {
      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(
                      tapEvent: () {

                      },
                      entity: entity,
                  );
                }),
          ),
        ),
      );
    },
  );
}