diff --git a/lib/pages/main/controller.dart b/lib/pages/main/controller.dart index 6d76e0a0..8470ffd8 100644 --- a/lib/pages/main/controller.dart +++ b/lib/pages/main/controller.dart @@ -10,6 +10,7 @@ import 'package:PiliPlus/models_new/msgfeed_unread/data.dart'; import 'package:PiliPlus/models_new/single_unread/data.dart'; import 'package:PiliPlus/pages/dynamics/controller.dart'; import 'package:PiliPlus/pages/home/controller.dart'; +import 'package:PiliPlus/pages/mine/view.dart'; import 'package:PiliPlus/services/account_service.dart'; import 'package:PiliPlus/utils/feed_back.dart'; import 'package:PiliPlus/utils/storage.dart'; @@ -254,10 +255,20 @@ class MainController extends GetxController } } + int? _mineIndex; void toMinePage() { - final index = navigationBars.indexOf(NavigationBarType.mine); - if (index != -1) { - setIndex(index); + _mineIndex ??= navigationBars.indexOf(NavigationBarType.mine); + if (_mineIndex != -1) { + setIndex(_mineIndex!); + } else { + Get.to( + const Material( + child: SafeArea( + bottom: false, + child: MinePage(), + ), + ), + ); } } diff --git a/lib/pages/mine/view.dart b/lib/pages/mine/view.dart index a1999d51..99e2a226 100644 --- a/lib/pages/mine/view.dart +++ b/lib/pages/mine/view.dart @@ -9,6 +9,7 @@ import 'package:PiliPlus/models/common/nav_bar_config.dart'; import 'package:PiliPlus/models/user/info.dart'; import 'package:PiliPlus/models_new/fav/fav_folder/list.dart'; import 'package:PiliPlus/pages/common/common_page.dart'; +import 'package:PiliPlus/pages/home/view.dart'; import 'package:PiliPlus/pages/login/controller.dart'; import 'package:PiliPlus/pages/main/controller.dart'; import 'package:PiliPlus/pages/mine/controller.dart'; @@ -120,6 +121,19 @@ class _MediaPageState extends CommonPageState spacing: 5, mainAxisAlignment: MainAxisAlignment.end, children: [ + if (!_mainController.hasHome) ...[ + IconButton( + iconSize: 22, + padding: const EdgeInsets.all(8), + style: const ButtonStyle( + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + tooltip: '搜索', + onPressed: () => Get.toNamed('/search'), + icon: const Icon(Icons.search), + ), + msgBadge(_mainController), + ], Obx( () { final anonymity = MineController.anonymity.value;