in_game_loading2.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'package:dart_jts/dart_jts.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
  4. import 'package:get/get.dart';
  5. import 'package:grpc/grpc.dart';
  6. import 'package:trackoffical_app/exception/exception.dart';
  7. import 'package:trackoffical_app/logger.dart';
  8. import 'package:trackoffical_app/route.dart';
  9. import 'package:trackoffical_app/service/game/game_instance.dart';
  10. import 'package:trackoffical_app/service/game/game_instance_guardian.dart';
  11. import 'package:trackoffical_app/service/game/game_manager_service.dart';
  12. import 'package:trackoffical_app/service/mock.dart';
  13. import 'package:trackoffical_app/styles/theme.dart';
  14. import 'package:trackoffical_app/view/ingame/game_guardian/guardian_watch_game_view.dart';
  15. import '../../service/game/game.dart';
  16. import 'in_game_view.dart';
  17. class InGameLoadingView extends StatefulWidget {
  18. const InGameLoadingView({super.key, required this.instance});
  19. final GameInstance instance;
  20. @override
  21. State<StatefulWidget> createState() {
  22. return _InGameLoadingState();
  23. }
  24. }
  25. class _InGameLoadingState extends State<InGameLoadingView>{
  26. @override
  27. Widget build(BuildContext context) {
  28. return WillPopScope(
  29. onWillPop: () async {
  30. return false;
  31. },
  32. child: Scaffold(
  33. body: Center(
  34. child: Column(mainAxisSize: MainAxisSize.min, children: [
  35. Row(
  36. mainAxisSize: MainAxisSize.min,
  37. crossAxisAlignment: CrossAxisAlignment.center,
  38. children: [
  39. Text('载入中,请稍后', style: context.textTheme.titleLarge),
  40. Image.asset('assets/images/loading.gif', height: 48),
  41. ]),
  42. const SizedBox(height: 12),
  43. SizedBox(
  44. height: 26,
  45. width: 220,
  46. child: Obx(
  47. () => LinearProgressIndicator(value: widget.instance.loadProgress.value)),
  48. )
  49. ]))));
  50. }
  51. }
  52. void main() async {
  53. final instance = GameInstanceGuardian(underGuardianId: 1);
  54. runApp(
  55. GetMaterialApp(theme: appThemeData(), home: InGameLoadingView(instance:instance)));
  56. }