新增日志全局开关便于调试,优化部分机型可能出现的界面错乱或不显示等问题

(cherry picked from commit 5853ba7fe4e0cbe4f04b20c86e9fd84c5557139f)
This commit is contained in:
2025-11-02 00:31:31 -07:00
committed by speakeloudest
parent cf297caf09
commit 17b3f6b92d
9 changed files with 139 additions and 34 deletions
@@ -1,4 +1,5 @@
import 'package:get/get.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:kaer_with_panels/app/modules/kr_home/controllers/kr_home_controller.dart';
import 'package:kaer_with_panels/app/modules/kr_invite/controllers/kr_invite_controller.dart';
import 'package:kaer_with_panels/app/modules/kr_login/controllers/kr_login_controller.dart';
@@ -10,15 +11,40 @@ import '../controllers/kr_main_controller.dart';
class KRMainBinding extends Bindings {
@override
void dependencies() {
if (kDebugMode) {
print('🔧 KRMainBinding.dependencies 被调用');
}
// 🔧 MainController 仍然使用 lazyPut,因为它由 MainView 触发
Get.lazyPut<KRMainController>(
() => KRMainController(),
() {
if (kDebugMode) {
print('🏗️ 创建 KRMainController 实例');
}
return KRMainController();
},
);
Get.lazyPut(() => KRHomeController());
Get.lazyPut(() => KRLoginController());
// 🔧 关键修复:使用 lazyPut 但设置为单例,避免重复创建
// fenix: true 允许控制器在被删除后重新创建
// 使用 lazyPut 让 HomeController 在真正需要时才创建,避免过早初始化导致资源冲突
Get.lazyPut<KRHomeController>(
() {
if (kDebugMode) {
print('🏗️ 创建 KRHomeController 实例(仅此一次)');
}
return KRHomeController();
},
fenix: true,
);
Get.lazyPut(() => KRLoginController());
Get.lazyPut(() => KRInviteController());
Get.lazyPut(() => KRUserInfoController());
Get.lazyPut(() => KRStatisticsController());
if (kDebugMode) {
print('✅ KRMainBinding.dependencies 完成');
}
}
}
@@ -1,4 +1,5 @@
import 'package:flutter/widgets.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:get/get.dart';
import 'package:kaer_with_panels/app/modules/kr_home/views/kr_home_view.dart';
import 'package:kaer_with_panels/app/modules/kr_invite/views/kr_invite_view.dart';
@@ -30,19 +31,33 @@ class KRMainController extends GetxController {
static KRMainController get to => Get.find();
DateTime? lastPopTime;
var kr_currentIndex = 0.obs;
final List<Widget> widgets = [
KRKeepAliveWrapper(KRHomeView()),
KRKeepAliveWrapper(KRInviteView()),
KRKeepAliveWrapper(KRStatisticsView()),
KRKeepAliveWrapper(KRUserInfoView()),
];
late final List<Widget> widgets;
/// 分页控制器
PageController pageController = PageController(keepPage: true);
@override
void onInit() {
super.onInit();
// 🔧 诊断:在 onInit 中创建 widgets 列表
if (kDebugMode) {
print('🎬 KRMainController.onInit 被调用');
print('📝 开始创建 widgets 列表...');
}
widgets = [
KRKeepAliveWrapper(KRHomeView()),
KRKeepAliveWrapper(KRInviteView()),
KRKeepAliveWrapper(KRStatisticsView()),
KRKeepAliveWrapper(KRUserInfoView()),
];
if (kDebugMode) {
print('✅ widgets 列表创建完成,包含 ${widgets.length} 个页面');
}
}