From 3e63875659a23f7f9354481c3ed2ae10702fa4aa Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Tue, 6 May 2025 22:49:46 +0800 Subject: [PATCH] mod: try-catch get dyn ctr Signed-off-by: bggRGjQaUbCoE --- lib/pages/dynamics/controller.dart | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/pages/dynamics/controller.dart b/lib/pages/dynamics/controller.dart index c7dd8ac6..05f2eb93 100644 --- a/lib/pages/dynamics/controller.dart +++ b/lib/pages/dynamics/controller.dart @@ -39,8 +39,14 @@ class DynamicsController extends GetxController late int currentMid = -1; late bool showLiveItems = GStorage.expandDynLivePanel; - DynamicsTabController get controller => Get.find( - tag: tabsConfig[tabController.index]['tag']); + DynamicsTabController? get controller { + try { + return Get.find( + tag: tabsConfig[tabController.index]['tag']); + } catch (_) { + return null; + } + } @override void onInit() { @@ -171,7 +177,7 @@ class DynamicsController extends GetxController if (mid == -1) { queryFollowUp(); } - controller.onReload(); + controller?.onReload(); return; } @@ -182,20 +188,20 @@ class DynamicsController extends GetxController @override Future onRefresh() async { queryFollowUp(); - await controller.onRefresh(); + await controller?.onRefresh(); } @override Future animateToTop() async { - controller.animateToTop(); + controller?.animateToTop(); scrollController.animToTop(); } @override void toTopOrRefresh() { final ctr = controller; - if (ctr.scrollController.hasClients) { - if (ctr.scrollController.position.pixels == 0) { + if (ctr?.scrollController.hasClients == true) { + if (ctr!.scrollController.position.pixels == 0) { if (scrollController.hasClients && scrollController.position.pixels != 0) { scrollController.animToTop();