import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/app/enums.dart'; import 'package:flutter_unit/blocs/collect/collect_event.dart'; import 'package:flutter_unit/blocs/search/search_bloc.dart'; import 'package:flutter_unit/repositorys/widget_db_repository.dart'; import 'package:flutter_unit/storage/app_storage.dart'; import 'package:flutter_unit/views/pages/splash/unit_splash.dart'; //import 'tools/initial.dart'; import 'blocs/collect/collect_bloc.dart'; import 'blocs/detail/detail_bloc.dart'; import 'blocs/global/global_bloc.dart'; import 'blocs/global/global_event.dart'; import 'blocs/global/global_state.dart'; import 'blocs/widgets/home_bloc.dart'; import 'blocs/widgets/home_event.dart'; import 'app/router.dart'; void main() async { // await Initial.init(); // runApp(BlocWrapper( // child: ColorFiltered( // colorFilter: ColorFilter.mode(Colors.white, BlendMode.color), // child: FlutterApp()))); runApp(BlocWrapper(child: FlutterApp())); } final storage = AppStorage(); class BlocWrapper extends StatelessWidget { final Widget child; BlocWrapper({this.child}); final repository = WidgetDbRepository(storage); @override Widget build(BuildContext context) { return MultiBlocProvider(//使用MultiBlocProvider包裹 providers: [ //Bloc提供器 BlocProvider( create: (_) => GlobalBloc(storage)..add(EventInitApp())), BlocProvider( create: (_) => HomeBloc(repository: repository) ..add(EventTabTap(WidgetFamily.statelessWidget))), BlocProvider( create: (_) => DetailBloc(repository: repository)), BlocProvider( create: (_) => CollectBloc(repository: repository)..add(EventSetCollectData())), BlocProvider( create: (_) => SearchBloc(repository: repository)), ], child: child); } } class FlutterApp extends StatelessWidget { @override Widget build(BuildContext context) { return BlocBuilder(builder: (_, state) { return MaterialApp( title: 'Flutter Demo', debugShowCheckedModeBanner: false, onGenerateRoute: Router.generateRoute, theme: ThemeData( primarySwatch: state.themeColor, fontFamily: state.fontFamily, ), home: // NavPage() UnitSplash() // UnitNavigation(), ); }); } } //NavPage()