repeat_after_page.dart 1.98 KB
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.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 'package:wow_english/route/route.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()..add(RequestDataEvent()),
      child: _RepeatAfterPageView(),
    );
  }
}

class _RepeatAfterPageView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BlocListener<RepeatAfterBloc, RepeatAfterState>(
      listener: (context, state) {

      },
      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: () {
                          pushNamed(AppRouteName.readAfterContent,arguments: {'videoFollowReadId':entity?.id});
                        },
                        entity: entity,
                      );
                    }),
              ),
            ),
          );
        },
      );
}