fix: 更新诸多bug

This commit is contained in:
2026-01-08 03:49:59 -08:00
parent 8477c2e343
commit eb4fad64cb
11 changed files with 133 additions and 79 deletions
@@ -1,5 +1,6 @@
import 'package:get/get.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/widgets.dart';
import '../../../services/api_service/kr_api.user.dart';
import '../../../utils/kr_common_util.dart';
@@ -85,6 +86,7 @@ class HIHelpController extends GetxController {
int kr_page = 1;
final int kr_size = 10;
final EasyRefreshController refreshController = EasyRefreshController();
final ScrollController kr_scrollController = ScrollController();
@override
void onInit() {
@@ -134,6 +136,7 @@ class HIHelpController extends GetxController {
@override
void onClose() {
refreshController.dispose();
kr_scrollController.dispose();
super.onClose();
}
}
@@ -25,11 +25,10 @@ class HIHelpView extends GetView<HIHelpController> implements HasSwipeConfig {
@override
Widget build(BuildContext context) {
final ScrollController scrollController = ScrollController();
return HIBaseScaffold(
child: Padding(
padding: const EdgeInsets.only(left: 20),
padding: const EdgeInsets.only(left: 0),
child: Column(
children: [
Expanded(
@@ -51,9 +50,9 @@ class HIHelpView extends GetView<HIHelpController> implements HasSwipeConfig {
child: Padding(
padding: EdgeInsets.only(right: 0.w), // 滚动条与内容间距
child: HiFixedScrollbar(
controller: scrollController,
controller: controller.kr_scrollController,
child: ListView.builder(
controller: scrollController,
controller: controller.kr_scrollController,
padding: EdgeInsets.only(left: 40.w, right: 40.w),
itemCount: controller.kr_messages.length,
itemBuilder: (context, index) {
@@ -200,7 +200,9 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
// 检查当前是否已连接
if (kr_isConnected.value) {
KRLogUtil.kr_i('当前已连接,跳过自动连接', tag: 'QuickConnect');
KRLogUtil.kr_i('当前已连接,同步线路信息', tag: 'QuickConnect');
await _restoreSelectedNode();
kr_updateConnectionInfo();
return;
}
@@ -1609,7 +1611,8 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
String actualTag;
if (kr_selectedCountryTag.value == 'auto') {
if (kr_selectedCountryTag.value == 'auto' &&
kr_cutSeletedTag.value.isNotEmpty) {
actualTag = kr_cutSeletedTag.value;
}
// 🔧 优先策略:
@@ -21,6 +21,7 @@ class KRMessageController extends GetxController {
controlFinishRefresh: true, // ⭐ 必须设置为 true
controlFinishLoad: true, // 加载更多通常也需要手动控制
);
final ScrollController kr_scrollController = ScrollController();
@override
void onInit() {
@@ -86,6 +87,7 @@ class KRMessageController extends GetxController {
@override
void onClose() {
refreshController.dispose();
kr_scrollController.dispose();
super.onClose();
}
}
@@ -26,11 +26,10 @@ class KRMessageView extends GetView<KRMessageController>
@override
Widget build(BuildContext context) {
final ScrollController scrollController = ScrollController();
return HIBaseScaffold(
child: Padding(
padding: const EdgeInsets.only(left: 20),
padding: const EdgeInsets.only(left: 0),
child: Stack(
children: [
// 主要内容区域
@@ -80,9 +79,9 @@ class KRMessageView extends GetView<KRMessageController>
child: Padding(
padding: EdgeInsets.only(right: 0.w),
child: HiFixedScrollbar(
controller: scrollController,
controller: controller.kr_scrollController,
child: ListView.builder(
controller: scrollController,
controller: controller.kr_scrollController,
padding:
EdgeInsets.only(left: 40.w, right: 40.w),
itemCount: controller.kr_messages.length,
@@ -11,10 +11,10 @@ import '../../../utils/kr_common_util.dart';
import '../../../localization/app_translations.dart';
import '../../../utils/kr_log_util.dart';
import 'package:flutter/foundation.dart';
import '';
import 'package:flutter/widgets.dart';
/// 订单状态控制器(参考 Tauri 项目实现)
class KROrderStatusController extends GetxController {
class KROrderStatusController extends GetxController with WidgetsBindingObserver {
/// API服务
final KRSubscribeApi kr_subscribeApi = KRSubscribeApi();
final KRSubscribeService kr_subscribeService = KRSubscribeService();
@@ -99,6 +99,9 @@ class KROrderStatusController extends GetxController {
kr_checkPaymentStatus();
// 启动轮询和倒计时
kr_startCheckingPaymentStatus();
// 添加生命周期监听
WidgetsBinding.instance.addObserver(this);
}
@override
@@ -114,9 +117,25 @@ class KROrderStatusController extends GetxController {
}
kr_timer?.cancel();
kr_countdownTimer?.cancel();
// 移除生命周期监听
WidgetsBinding.instance.removeObserver(this);
super.onClose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
if (state == AppLifecycleState.resumed) {
if (kDebugMode) {
print('📱 App 恢复前台,立即更新倒计时和订单状态');
}
// 立即触发一次倒计时更新
kr_updateCountdown();
// 立即检查一次订单状态
kr_checkPaymentStatus();
}
}
/// 开始检查支付状态(参考 Tauri 项目:5秒轮询一次)
void kr_startCheckingPaymentStatus() {
if (kDebugMode) {