import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:plugin_basic/base/base_stateful_page.dart'; import 'package:plugin_basic/base/base_state.dart'; import 'package:plugin_basic/base/mixin_state_lifecycle.dart'; import 'package:plugin_basic/utils/ext_get_nav.dart'; import 'package:plugin_platform/engine/media/image_picker_utils.dart'; import 'package:cs_resources/constants/color_constants.dart'; import 'package:cs_resources/local/theme/theme_config.dart'; import 'package:plugin_platform/engine/toast/toast_engine.dart'; import 'package:router/path/router_path.dart'; import 'package:shared/utils/log_utils.dart'; import 'package:widgets/double_tap_back_exit_app.dart'; import 'package:widgets/ext/ex_widget.dart'; import 'package:widgets/my_appbar.dart'; import 'package:widgets/my_button.dart'; import 'main_controller.dart'; import 'main_state.dart'; /* App首页页面 底部5个 Tab + PageView 切换 */ class MainPage extends BaseStatefulPage { MainPage({super.key}); //启动当前页面 static void startInstance() { return Get.start(RouterPath.MAIN, launchModel: LaunchModel.singleTask); } static void startWithPopAll() { Get.offAllNamed(RouterPath.MAIN); } @override State createState() => _MainPageState(); @override MainController createRawController() { return MainController(); } } class _MainPageState extends BaseState with StateLifecycle { late MainState state; @override void initState() { super.initState(); state = controller.state; } @override void dispose() { Get.delete(); super.dispose(); } @override void onResume() { super.onResume(); Log.d("MainPage Lifecycle - onResume"); } @override void onPause() { super.onPause(); Log.d("MainPage Lifecycle - onPause"); } @override void onStop() { super.onStop(); Log.d("MainPage Lifecycle - onStop"); } @override void onStart() { super.onStart(); Log.d("MainPage Lifecycle - onStart"); } @override Widget build(BuildContext context) { Log.d("MainPage Lifecycle - build走了一遍"); //双击退出应用 return DoubleTapBackExitApp( child: AnnotatedRegion( value: ThemeConfig.systemUiOverlayStyleLightThemeWhite, child: autoCtlGetBuilder(builder: (controller) { return Scaffold( appBar: MyAppBar.appBar(context, "首页".tr, backCallback: () { SmartDialog.showToast("你别点我了,没用!"); }), body: SafeArea( bottom: true, top: false, //真正的 Content 布局,使用PageView保存状态 child: Scrollbar( child: SingleChildScrollView( child: Column(mainAxisSize: MainAxisSize.min, children: [ MyButton( onPressed: () { }, text: "去登陆页面", minWidth: 150, fontSize: 15, backgroundColor: ColorConstants.appBlue, textColor: ColorConstants.white, elevation: 3, ).center().marginOnly(top: 10), MyButton( onPressed: () { }, text: "去设置页面", minWidth: 150, fontSize: 15, backgroundColor: ColorConstants.appBlue, textColor: ColorConstants.white, elevation: 3, ).center().marginOnly(top: 10), MyButton( onPressed: () { }, text: "Form表单页面", minWidth: 150, fontSize: 15, backgroundColor: ColorConstants.appBlue, textColor: ColorConstants.white, elevation: 3, ).center().marginOnly(top: 10), MyButton( onPressed: () async { }, text: "路由获取", minWidth: 150, fontSize: 15, backgroundColor: ColorConstants.appBlue, textColor: ColorConstants.white, elevation: 3, ).center().marginOnly(top: 10), MyButton( onPressed: () { ImagePickerUtils().show((filePath) { ToastEngine.show("图片路径:$filePath"); }); }, text: "申请多媒体权限,进入相册选择", minWidth: 150, fontSize: 15, backgroundColor: ColorConstants.appBlue, textColor: ColorConstants.white, elevation: 3, ).center().marginOnly(top: 10), ]), )), ), ); }), ), ); } }