import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:wow_english/pages/reading/widgets/ReadingModeType.dart'; part 'reading_event.dart'; part 'reading_state.dart'; class ReadingPageBloc extends Bloc { final PageController pageController; ///当前页索引 int _currentPage = 0; ///当前播放模式 ReadingModeType _currentMode = ReadingModeType.auto; int get currentPage => _currentPage + 1; ReadingModeType get currentMode => _currentMode; ReadingPageBloc(this.pageController) : super(ReadingPageInitial()) { on(_pageControllerChange); on(_selectItemLoad); // pageController.addListener(() { // _currentPage = pageController.page!.round(); // }); } @override Future close() { pageController.dispose(); return super.close(); } void _pageControllerChange(CurrentPageIndexChangeEvent event, Emitter emitter) async { _currentPage = event.pageIndex; emitter(CurrentPageIndexState()); } void _selectItemLoad(CurrentModeChangeEvent event, Emitter emitter) async { if (_currentMode == ReadingModeType.auto) { _currentMode = ReadingModeType.manual; } else { _currentMode = ReadingModeType.auto; } emitter(CurrentModeState()); } }