import 'dart:ui'; import 'dart:io'; // 添加这个导入 import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; class MattressControlPage extends StatefulWidget { const MattressControlPage({super.key}); @override State createState() => _MattressControlPageState(); } class _MattressControlPageState extends State { final controller = Get.put(ControlCardController()); UserInfoController userInfoController = Get.find(); MHTHomeController deviceController = Get.find(); int selectedIndex = 1; // 当前选中的tab索引 @override Widget build(BuildContext context) { // 如果是 iOS 平台,使用 PopScope 禁用左滑返回 if (Platform.isIOS) { return PopScope( canPop: false, // 禁用返回手势 child: buildContent(), ); } return buildContent(); } // 将原有的 build 内容提取到这个方法中 Widget buildContent() { return LayoutBuilder( builder: (context, bodySize) => GestureDetector( child: Obx(() { final isLoggedIn = userInfoController.model.login == 1; final hasDevice = deviceController.deviceList.values.isNotEmpty; final showNoLoginView = !isLoggedIn || !hasDevice; final backgroundImage = showNoLoginView ? 'assets/images/noLoginControl.png' : 'assets/images/new_background.png'; return Stack( children: [ // 背景图片 Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage(backgroundImage), fit: BoxFit.fill, ), ), ), // 遮罩层:未登录或无设备时显示 if (showNoLoginView) Positioned.fill( child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), child: Container( color: Colors.black.withOpacity(0.5), ), ), ), // 主内容 Scaffold( backgroundColor: Colors.transparent, body: SafeArea( child: WebviewTestView(), ), ), ], ); }), ), ); } } class ControlCardController extends GetxController { final List switchStates = List.generate(9, (index) => false.obs); }