opt: 控制器初始化
This commit is contained in:
@ -13,6 +13,7 @@ import '../../models/common/nav_bar_config.dart';
|
|||||||
|
|
||||||
class MainController extends GetxController {
|
class MainController extends GetxController {
|
||||||
List<Widget> pages = <Widget>[];
|
List<Widget> pages = <Widget>[];
|
||||||
|
List<int> pagesIds = <int>[];
|
||||||
RxList navigationBars = [].obs;
|
RxList navigationBars = [].obs;
|
||||||
late List defaultNavTabs;
|
late List defaultNavTabs;
|
||||||
late List<int> navBarSort;
|
late List<int> navBarSort;
|
||||||
@ -43,7 +44,8 @@ class MainController extends GetxController {
|
|||||||
SettingBoxKey.dynamicBadgeMode,
|
SettingBoxKey.dynamicBadgeMode,
|
||||||
defaultValue: DynamicBadgeMode.number.code)];
|
defaultValue: DynamicBadgeMode.number.code)];
|
||||||
setNavBarConfig();
|
setNavBarConfig();
|
||||||
if (dynamicBadgeType.value != DynamicBadgeMode.hidden) {
|
if (dynamicBadgeType.value != DynamicBadgeMode.hidden &&
|
||||||
|
pagesIds.contains(2)) {
|
||||||
getUnreadDynamic();
|
getUnreadDynamic();
|
||||||
}
|
}
|
||||||
enableGradientBg =
|
enableGradientBg =
|
||||||
@ -104,6 +106,7 @@ class MainController extends GetxController {
|
|||||||
// 如果找不到匹配项,默认索引设置为0或其他合适的值
|
// 如果找不到匹配项,默认索引设置为0或其他合适的值
|
||||||
selectedIndex = defaultIndex != -1 ? defaultIndex : 0;
|
selectedIndex = defaultIndex != -1 ? defaultIndex : 0;
|
||||||
pages = navigationBars.map<Widget>((e) => e['page']).toList();
|
pages = navigationBars.map<Widget>((e) => e['page']).toList();
|
||||||
|
pagesIds = navigationBars.map<int>((e) => e['id']).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -22,10 +22,10 @@ class MainApp extends StatefulWidget {
|
|||||||
|
|
||||||
class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
|
class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
|
||||||
final MainController _mainController = Get.put(MainController());
|
final MainController _mainController = Get.put(MainController());
|
||||||
final HomeController _homeController = Get.put(HomeController());
|
late HomeController _homeController;
|
||||||
final RankController _rankController = Get.put(RankController());
|
RankController? _rankController;
|
||||||
final DynamicsController _dynamicController = Get.put(DynamicsController());
|
DynamicsController? _dynamicController;
|
||||||
final MediaController _mediaController = Get.put(MediaController());
|
MediaController? _mediaController;
|
||||||
|
|
||||||
int? _lastSelectTime; //上次点击时间
|
int? _lastSelectTime; //上次点击时间
|
||||||
Box setting = GStrorage.setting;
|
Box setting = GStrorage.setting;
|
||||||
@ -38,6 +38,7 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
|
|||||||
_mainController.pageController =
|
_mainController.pageController =
|
||||||
PageController(initialPage: _mainController.selectedIndex);
|
PageController(initialPage: _mainController.selectedIndex);
|
||||||
enableMYBar = setting.get(SettingBoxKey.enableMYBar, defaultValue: true);
|
enableMYBar = setting.get(SettingBoxKey.enableMYBar, defaultValue: true);
|
||||||
|
controllerInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setIndex(int value) async {
|
void setIndex(int value) async {
|
||||||
@ -60,38 +61,51 @@ class _MainAppState extends State<MainApp> with SingleTickerProviderStateMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (currentPage is RankPage) {
|
if (currentPage is RankPage) {
|
||||||
if (_rankController.flag) {
|
if (_rankController!.flag) {
|
||||||
// 单击返回顶部 双击并刷新
|
// 单击返回顶部 双击并刷新
|
||||||
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
|
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
|
||||||
_rankController.onRefresh();
|
_rankController!.onRefresh();
|
||||||
} else {
|
} else {
|
||||||
_rankController.animateToTop();
|
_rankController!.animateToTop();
|
||||||
}
|
}
|
||||||
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
|
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
|
||||||
}
|
}
|
||||||
_rankController.flag = true;
|
_rankController!.flag = true;
|
||||||
} else {
|
} else {
|
||||||
_rankController.flag = false;
|
_rankController?.flag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentPage is DynamicsPage) {
|
if (currentPage is DynamicsPage) {
|
||||||
if (_dynamicController.flag) {
|
if (_dynamicController!.flag) {
|
||||||
// 单击返回顶部 双击并刷新
|
// 单击返回顶部 双击并刷新
|
||||||
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
|
if (DateTime.now().millisecondsSinceEpoch - _lastSelectTime! < 500) {
|
||||||
_dynamicController.onRefresh();
|
_dynamicController!.onRefresh();
|
||||||
} else {
|
} else {
|
||||||
_dynamicController.animateToTop();
|
_dynamicController!.animateToTop();
|
||||||
}
|
}
|
||||||
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
|
_lastSelectTime = DateTime.now().millisecondsSinceEpoch;
|
||||||
}
|
}
|
||||||
_dynamicController.flag = true;
|
_dynamicController!.flag = true;
|
||||||
_mainController.clearUnread();
|
_mainController.clearUnread();
|
||||||
} else {
|
} else {
|
||||||
_dynamicController.flag = false;
|
_dynamicController?.flag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentPage is MediaPage) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user