Skip to content

Commit ce10a78

Browse files
Fix panel page bug
1 parent d5df453 commit ce10a78

File tree

4 files changed

+28
-55
lines changed

4 files changed

+28
-55
lines changed

lib/Screens/Navigation/search_screen.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'dart:async';
12
import 'dart:math';
23

34
import 'package:card_swiper/card_swiper.dart';
@@ -40,7 +41,7 @@ class SearchScreenState extends State<SearchScreen>
4041
with
4142
TickerProviderStateMixin,
4243
AutomaticKeepAliveClientMixin,
43-
ScrollToHideMixin {
44+
ScrollToHideMixin,BottomNavgationMixin {
4445
@override
4546
bool get wantKeepAlive => true;
4647

@@ -58,6 +59,11 @@ class SearchScreenState extends State<SearchScreen>
5859

5960
bool get hasSearchFocus => _focusNode.hasFocus;
6061

62+
@override
63+
FutureOr onTapBottomNavigation() {
64+
FocusScope.of(context).requestFocus(_focusNode);
65+
}
66+
6167
@override
6268
void initState() {
6369
super.initState();

lib/Screens/main_screen.dart

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -399,18 +399,6 @@ class MainScreenState extends State<MainScreen>
399399
);
400400
}
401401

402-
logout() async {
403-
blogInfo == null;
404-
setState(() {});
405-
panelScreenState?.logout();
406-
}
407-
408-
login() async {
409-
await _fetchUserInfo();
410-
setState(() {});
411-
panelScreenState?.login();
412-
}
413-
414402
_titleBar() {
415403
return (ResponsiveUtil.isDesktop())
416404
? ItemBuilder.buildWindowTitle(

lib/Screens/panel_screen.dart

Lines changed: 21 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import 'package:loftify/Screens/Login/login_by_captcha_screen.dart';
1818
import 'package:loftify/Screens/Navigation/dynamic_screen.dart';
1919
import 'package:loftify/Screens/Navigation/mine_screen.dart';
2020
import 'package:loftify/Screens/refresh_interface.dart';
21+
import 'package:loftify/Utils/ilogger.dart';
2122
import 'package:provider/provider.dart';
2223

2324
import '../Utils/app_provider.dart';
2425
import '../Utils/constant.dart';
2526
import '../Utils/enums.dart';
26-
import '../Utils/hive_util.dart';
2727
import '../Utils/lottie_util.dart';
2828
import '../Utils/responsive_util.dart';
2929
import '../Utils/route_util.dart';
@@ -77,7 +77,6 @@ class PanelScreenState extends State<PanelScreen>
7777
controller: darkModeController,
7878
);
7979
});
80-
fetchUserInfo();
8180
}
8281

8382
popAll() {
@@ -115,46 +114,27 @@ class PanelScreenState extends State<PanelScreen>
115114
}
116115
}
117116

118-
fetchUserInfo() async {
119-
var userInfo = await HiveUtil.getUserInfo();
120-
if (userInfo == null) {
121-
logout();
122-
return;
123-
}
124-
}
125-
126-
logout() {
127-
unlogin = true;
128-
popAll();
129-
_pageList = [];
130-
setState(() {});
131-
}
132-
133-
login() {
134-
unlogin = false;
135-
initPage();
136-
setState(() {});
137-
}
138-
139117
Future<void> initPage() async {
140-
var userInfo = await HiveUtil.getUserInfo();
141-
if (userInfo == null) {
142-
_pageList = [];
143-
} else {
144-
_keyList = [
145-
homeScreenKey,
146-
searchScreenKey,
147-
GlobalKey(),
148-
GlobalKey(),
149-
];
150-
_pageList = [
151-
HomeScreen(key: _keyList[0]),
152-
SearchScreen(key: _keyList[1]),
153-
DynamicScreen(key: _keyList[2]),
154-
MineScreen(key: _keyList[3]),
155-
];
156-
jumpToPage(appProvider.sidebarChoice.index);
118+
_keyList = [
119+
homeScreenKey,
120+
searchScreenKey,
121+
GlobalKey(),
122+
GlobalKey(),
123+
];
124+
_pageList = [
125+
HomeScreen(key: _keyList[0]),
126+
SearchScreen(key: _keyList[1]),
127+
DynamicScreen(key: _keyList[2]),
128+
MineScreen(key: _keyList[3]),
129+
];
130+
if (mounted) setState(() {});
131+
try {
132+
ILogger.debug(
133+
"init panel page and jump to ${appProvider.sidebarChoice.index.clamp(0, _pageList.length - 1)}");
134+
} catch (e, t) {
135+
ILogger.error("Failed to init panel page", e, t);
157136
}
137+
jumpToPage(appProvider.sidebarChoice.index.clamp(0, _pageList.length - 1));
158138
}
159139

160140
void jumpToPage(int index) {
@@ -166,11 +146,11 @@ class PanelScreenState extends State<PanelScreen>
166146
mixin?.onTapBottomNavigation();
167147
} else {
168148
_currentIndex = index;
169-
if (mounted) setState(() {});
170149
if (_pageController.hasClients) {
171150
_pageController.jumpToPage(index);
172151
}
173152
}
153+
if (mounted) setState(() {});
174154
}
175155

176156
void refreshScrollControllers() {

lib/Utils/responsive_util.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ class ResponsiveUtil {
8787
}
8888

8989
static Future<void> returnToMainScreen(BuildContext context) async {
90-
homeScreenState?.refresh();
9190
if (ResponsiveUtil.isDesktop()) {
9291
desktopNavigatorKey = GlobalKey<NavigatorState>();
9392
globalNavigatorState?.pushAndRemoveUntil(

0 commit comments

Comments
 (0)