基础组件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

88 line
2.7 KiB

  1. import 'package:flutter/foundation.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_alibc/flutter_alibc.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:zhiying_base_widget/pages/home_page/home_page.dart';
  6. import 'package:zhiying_base_widget/pages/launch_page/launch_page.dart';
  7. import 'package:zhiying_base_widget/register.dart';
  8. import 'package:zhiying_comm/zhiying_comm.dart';
  9. import 'package:flutter_localizations/flutter_localizations.dart';
  10. import 'package:pull_to_refresh/pull_to_refresh.dart';
  11. import 'util/localizations_delegate.dart';
  12. void main() {
  13. FlutterError.onError = (FlutterErrorDetails details) {
  14. FlutterError.dumpErrorToConsole(details);
  15. print(details.exceptionAsString());
  16. // if (kReleaseMode) exit(1);
  17. };
  18. runApp(MyApp());
  19. }
  20. class MyApp extends StatefulWidget {
  21. @override
  22. _MyAppState createState() => _MyAppState();
  23. }
  24. class _MyAppState extends State<MyApp> {
  25. Widget getErrorWidget(BuildContext context, FlutterErrorDetails error) {
  26. return Center(
  27. child: Text(
  28. "走神了~\n${error.exceptionAsString()}",
  29. style: Theme.of(context).textTheme.title.copyWith(color: Colors.redAccent),
  30. ),
  31. );
  32. }
  33. @override
  34. void initState() {
  35. super.initState();
  36. print('初始化~~~~');
  37. BaseWidgetRegister.init();
  38. print('初始化百川');
  39. FlutterAlibc.initAlibc(version: "", appName: "").then((result) {
  40. print("白川" + '${result.errorCode} ${result.errorMessage}');
  41. });
  42. }
  43. @override
  44. Widget build(BuildContext context) {
  45. ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
  46. return getErrorWidget(context, errorDetails);
  47. };
  48. return MultiProvider(
  49. providers: [
  50. ChangeNotifierProvider.value(value: UserInfoNotifier()),
  51. ],
  52. child: MaterialApp(
  53. localizationsDelegates: [
  54. RefreshLocalizations.delegate,
  55. GlobalMaterialLocalizations.delegate,
  56. GlobalWidgetsLocalizations.delegate,
  57. CommonLocalizationsDelegate(),
  58. ],
  59. supportedLocales: [
  60. const Locale('en'),
  61. const Locale('zh'),
  62. ],
  63. localeResolutionCallback: (Locale locale, Iterable<Locale> supportedLocales) {
  64. print("change language ${locale.toString()}");
  65. return locale;
  66. },
  67. home: GestureDetector(
  68. onTap: () {
  69. FocusScopeNode currentFocus = FocusScope.of(context);
  70. if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) {
  71. FocusManager.instance.primaryFocus.unfocus();
  72. }
  73. },
  74. child: LaunchPage(
  75. builder: (context) => HomePage(),
  76. ),
  77. ),
  78. ),
  79. );
  80. }
  81. }