import 'package:fis_measure/interfaces/process/player/play_controller.dart'; import 'package:fis_measure/interfaces/process/workspace/mobile_measure_view_state_controller.dart'; import 'package:fis_measure/view/measure/measure_left_annotation.dart'; import 'package:fis_measure/view/mobile_view/controller/mobile_measure_view_state_controller.dart'; import 'package:fis_measure/view/mobile_view/mobile_right_panel/mobile_annotation_tool.dart'; import 'package:fis_measure/view/mobile_view/mobile_right_panel/mobile_measure_tool.dart'; import 'package:fis_measure/view/paint/ai_patint_result.dart'; import 'package:fis_measure/view/player/controller.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; /// 手机端右侧面板 class MobileRightPanel extends StatefulWidget { const MobileRightPanel({ Key? key, }) : super(key: key); @override State createState() => _MobileRightPanelState(); } class _MobileRightPanelState extends State { late final playerController = Get.find(); final mobileMeasureStateController = Get.find(); @override void initState() { mobileMeasureStateController.onModeChanged.addListener(_onViewModeChanged); super.initState(); } @override void dispose() { mobileMeasureStateController.onModeChanged .removeListener(_onViewModeChanged); super.dispose(); } MobileMeasureMode curMode = MobileMeasureMode.playerMode; void _onViewModeChanged(Object s, MobileMeasureMode mode) { setState(() { curMode = mode; }); } @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.start, children: [ Expanded( child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [_rightPanel()], ), ), ], ); } Widget _rightPanel() { switch (curMode) { case MobileMeasureMode.playerMode: return Column( children: [ SizedBox( width: 150, height: 220, child: FittedBox( child: SizedBox( width: 200, child: AIPaintInfoReslut( playerController as VidPlayerController, ), ), ), ), ], ); case MobileMeasureMode.measureMode: return const MobileMeasureSelector(); case MobileMeasureMode.annotationMode: return const MobileAnnotationSelector(); default: return Container(); } } }