opt: 控制器初始化

This commit is contained in:
guozhigq
2024-10-07 17:55:39 +08:00
parent 722ba06787
commit 64c2bcc650
2 changed files with 33 additions and 16 deletions

View File

@ -13,6 +13,7 @@ import '../../models/common/nav_bar_config.dart';
class MainController extends GetxController {
List<Widget> pages = <Widget>[];
List<int> pagesIds = <int>[];
RxList navigationBars = [].obs;
late List defaultNavTabs;
late List<int> navBarSort;
@ -43,7 +44,8 @@ class MainController extends GetxController {
SettingBoxKey.dynamicBadgeMode,
defaultValue: DynamicBadgeMode.number.code)];
setNavBarConfig();
if (dynamicBadgeType.value != DynamicBadgeMode.hidden) {
if (dynamicBadgeType.value != DynamicBadgeMode.hidden &&
pagesIds.contains(2)) {
getUnreadDynamic();
}
enableGradientBg =
@ -104,6 +106,7 @@ class MainController extends GetxController {
// 如果找不到匹配项默认索引设置为0或其他合适的值
selectedIndex = defaultIndex != -1 ? defaultIndex : 0;
pages = navigationBars.map<Widget>((e) => e['page']).toList();
pagesIds = navigationBars.map<int>((e) => e['id']).toList();
}
@override

View File

@ -22,10 +22,10 @@ class MainApp extends StatefulWidget {
class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
final MainController _mainController = Get.put(MainController());
final HomeController _homeController = Get.put(HomeController());
final RankController _rankController = Get.put(RankController());
final DynamicsController _dynamicController = Get.put(DynamicsController());
final MediaController _mediaController = Get.put(MediaController());
late HomeController _homeController;
RankController? _rankController;
DynamicsController? _dynamicController;
MediaController? _mediaController;
int? _lastSelectTime; //上次点击时间
Box setting = GStrorage.setting;
@ -38,6 +38,7 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
_mainController.pageController =
PageController(initialPage: _mainController.selectedIndex);
enableMYBar = setting.get(SettingBoxKey.enableMYBar, defaultValue: true);
controllerInit();
}
void setIndex(int value) async {
@ -60,38 +61,51 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
}
if (currentPage is RankPage) {
if (_rankController.flag) {
if (_rankController!.flag) {
// 单击返回顶部 双击并刷新
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
_rankController.onRefresh();
_rankController!.onRefresh();
} else {
_rankController.animateToTop();
_rankController!.animateToTop();
}
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
}
_rankController.flag = true;
_rankController!.flag = true;
} else {
_rankController.flag = false;
_rankController?.flag = false;
}
if (currentPage is DynamicsPage) {
if (_dynamicController.flag) {
if (_dynamicController!.flag) {
// 单击返回顶部 双击并刷新
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
_dynamicController.onRefresh();
_dynamicController!.onRefresh();
} else {
_dynamicController.animateToTop();
_dynamicController!.animateToTop();
}
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
}
_dynamicController.flag = true;
_dynamicController!.flag = true;
_mainController.clearUnread();
} else {
_dynamicController.flag = false;
_dynamicController?.flag = false;
}
if (currentPage is MediaPage) {
_mediaController.queryFavFolder();
_mediaController!.queryFavFolder();
}
}
void controllerInit() {
_homeController = Get.put(HomeController());
if (_mainController.pagesIds.contains(1)) {
_rankController = Get.put(RankController());
}
if (_mainController.pagesIds.contains(2)) {
_dynamicController = Get.put(DynamicsController());
}
if (_mainController.pagesIds.contains(3)) {
_mediaController = Get.put(MediaController());
}
}