多语言
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:vbvs_app/common/util/CommonVariables.dart';
|
||||
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
|
||||
import 'package:vbvs_app/controller/user_info_controller.dart';
|
||||
import 'package:vbvs_app/model/WebSocketMessage.dart';
|
||||
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
|
||||
@@ -17,14 +18,35 @@ import 'package:vbvs_app/pages/mh_page/new_mine_page.dart';
|
||||
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
|
||||
import 'package:EasyDartModule/EasyDartModule.dart' as edm;
|
||||
|
||||
// class MainPageBBottomChange extends StatefulWidget {
|
||||
// // 全局 key,用于静态访问 _HomePageState
|
||||
// static final GlobalKey<_HomePageState> globalKey =
|
||||
// GlobalKey<_HomePageState>();
|
||||
|
||||
// MainPageBBottomChange({Key? key}) : super(key: globalKey);
|
||||
|
||||
// // 静态方法:外部调用,跳转 tab
|
||||
// static void jumpTo(int index) {
|
||||
// final state = globalKey.currentState;
|
||||
// if (state != null) {
|
||||
// state.switchTab(index);
|
||||
// }
|
||||
// }
|
||||
|
||||
// static int? getCurrentIndex() {
|
||||
// final state = globalKey.currentState;
|
||||
// return state?.selectedIndex;
|
||||
// }
|
||||
|
||||
// @override
|
||||
// _HomePageState createState() => _HomePageState();
|
||||
// }
|
||||
class MainPageBBottomChange extends StatefulWidget {
|
||||
// 全局 key,用于静态访问 _HomePageState
|
||||
static final GlobalKey<_HomePageState> globalKey =
|
||||
GlobalKey<_HomePageState>();
|
||||
final GlobalKey<_HomePageState>? externalKey;
|
||||
|
||||
MainPageBBottomChange({Key? key}) : super(key: globalKey);
|
||||
MainPageBBottomChange({Key? key, this.externalKey})
|
||||
: super(key: key ?? externalKey);
|
||||
|
||||
// 静态方法:外部调用,跳转 tab
|
||||
static void jumpTo(int index) {
|
||||
final state = globalKey.currentState;
|
||||
if (state != null) {
|
||||
@@ -37,6 +59,9 @@ class MainPageBBottomChange extends StatefulWidget {
|
||||
return state?.selectedIndex;
|
||||
}
|
||||
|
||||
static final GlobalKey<_HomePageState> globalKey =
|
||||
GlobalKey<_HomePageState>();
|
||||
|
||||
@override
|
||||
_HomePageState createState() => _HomePageState();
|
||||
}
|
||||
@@ -47,8 +72,8 @@ class _HomePageState extends State<MainPageBBottomChange>
|
||||
late AnimationController _controller;
|
||||
late Animation<double> _positionAnimation;
|
||||
double currentPosition = 0.0;
|
||||
|
||||
final List<String> titles = ['首页', '报告', '控制', '我的'];
|
||||
MHLanguageController languageController = Get.find();
|
||||
List<String> get titles => ['首页', '报告', '控制', '我的'];
|
||||
final List<String> path = [
|
||||
"assets/images/bar_home.svg",
|
||||
"assets/images/bar_heart.svg",
|
||||
@@ -113,11 +138,15 @@ class _HomePageState extends State<MainPageBBottomChange>
|
||||
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return PopScope(
|
||||
|
||||
return Obx(() {
|
||||
final currentLanguage =
|
||||
languageController.selectLanguage.value; // 监听此变量变化
|
||||
return PopScope(
|
||||
canPop: false,
|
||||
onPopInvokedWithResult: (disposition, result) async {
|
||||
if (Platform.isAndroid) {
|
||||
var flag = await _handleBackPressed(context); // 自定义返回逻辑
|
||||
var flag = await _handleBackPressed(context);
|
||||
if (flag) {
|
||||
SystemNavigator.pop();
|
||||
}
|
||||
@@ -134,9 +163,13 @@ class _HomePageState extends State<MainPageBBottomChange>
|
||||
animatedPosition: _positionAnimation.value,
|
||||
onTap: _onTabTapped,
|
||||
path: path,
|
||||
titles: titles,
|
||||
titles: titles
|
||||
.map((title) => title.tr) // 这里依赖 .tr 会自动根据 Get.locale 变化刷新
|
||||
.toList(),
|
||||
),
|
||||
));
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
void switchTab(int index) {
|
||||
@@ -226,7 +259,7 @@ class _HomePageState extends State<MainPageBBottomChange>
|
||||
//如果当前没有连接该设备,则返回
|
||||
return;
|
||||
}
|
||||
if (webviewTestController.selectDevice['blueToothStatus']!=2) {
|
||||
if (webviewTestController.selectDevice['blueToothStatus'] != 2) {
|
||||
return;
|
||||
}
|
||||
edm.EasyDartModule.websocket.sendData(jsonEncode(WebSocketMessage(
|
||||
|
||||
@@ -994,86 +994,9 @@ class _HomePageState extends State<HomePage> {
|
||||
);
|
||||
}
|
||||
|
||||
// return Expanded(
|
||||
// child: SingleChildScrollView(
|
||||
// child: Column(
|
||||
// children: List.generate(
|
||||
// deviceList.length,
|
||||
// (i) {
|
||||
// String mac = macList[i];
|
||||
// List<dynamic> dailyDataList =
|
||||
// reportData[mac]!;
|
||||
// Map? targetDevice =
|
||||
// deviceList.firstWhereOrNull(
|
||||
// (device) => device['mac'] == mac,
|
||||
// );
|
||||
// List stateModule = [];
|
||||
// String currentTime = "";
|
||||
// String goalMac = targetDevice?['mac'];
|
||||
// var person = targetDevice?['person'];
|
||||
// return DynamicReportDetailWidget(
|
||||
// key: ValueKey(
|
||||
// '${targetDevice!['mac']}_${homeController.model.type}'), // 添加唯一key
|
||||
// targetDevice: targetDevice!,
|
||||
// sleepDateWidgets: List.generate(
|
||||
// dailyDataList.length,
|
||||
// (j) {
|
||||
// var dayData = dailyDataList[j];
|
||||
// DateTime date =
|
||||
// DateTime.fromMillisecondsSinceEpoch(
|
||||
// dayData['time'] is String
|
||||
// ? int.parse(dayData['time'])
|
||||
// : dayData['time'],
|
||||
// );
|
||||
// if (dayData['selected'] != null &&
|
||||
// dayData['selected'] == true &&
|
||||
// dayData['state'] != null) {
|
||||
// stateModule = dayData['state'];
|
||||
// currentTime = dayData['time'];
|
||||
// }
|
||||
// return SleepDateWidget(
|
||||
// mac: mac,
|
||||
// time: dayData['time'],
|
||||
// date: date,
|
||||
// score: dayData['score']?['socre']
|
||||
// ?.toString() ??
|
||||
// '',
|
||||
// comment: dayData['score']?['name'],
|
||||
// textColor: dayData['score']
|
||||
// ?['color'] ==
|
||||
// null
|
||||
// ? null
|
||||
// : stringToColor(
|
||||
// dayData['score']?['color']),
|
||||
// isSelected: dayData['selected'],
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
// sleepDataModuleWidgets: stateModule
|
||||
// .isNotEmpty
|
||||
// ? List.generate(
|
||||
// stateModule.length,
|
||||
// (j) {
|
||||
// stateModule[j]['onto'] = true;
|
||||
// stateModule[j]['time'] =
|
||||
// currentTime;
|
||||
// stateModule[j]['mac'] = goalMac;
|
||||
// stateModule[j]['person'] = person;
|
||||
// return SleepDataModuleWidget(
|
||||
// data: stateModule[j],
|
||||
// );
|
||||
// },
|
||||
// )
|
||||
// : [],
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
return Expanded(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
child: SingleChildScrollView(child:
|
||||
Column(
|
||||
children: [
|
||||
SizedBox(height: 26.rpx), // 第一个上方间距
|
||||
...List.generate(deviceList.length, (i) {
|
||||
@@ -1097,6 +1020,8 @@ class _HomePageState extends State<HomePage> {
|
||||
targetDevice: targetDevice!,
|
||||
sleepDateWidgets: List.generate(
|
||||
dailyDataList.length, (j) {
|
||||
|
||||
|
||||
var dayData = dailyDataList[j];
|
||||
DateTime date = DateTime
|
||||
.fromMillisecondsSinceEpoch(
|
||||
@@ -1148,7 +1073,7 @@ class _HomePageState extends State<HomePage> {
|
||||
);
|
||||
}),
|
||||
],
|
||||
),
|
||||
)
|
||||
),
|
||||
);
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user