Skip to content

Commit 5ee3fdb

Browse files
Fix scrollToHide bug
1 parent 2a53920 commit 5ee3fdb

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

lib/Screens/Navigation/dynamic_screen.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ import '../../generated/l10n.dart';
3838
import 'home_screen.dart';
3939

4040
class DynamicScreen extends StatefulWidget {
41-
const DynamicScreen({super.key});
41+
const DynamicScreen({
42+
super.key,
43+
this.scrollController,
44+
});
45+
46+
final ScrollController? scrollController;
4247

4348
static const String routeName = "/nav/dynamic";
4449

@@ -170,6 +175,7 @@ class DynamicScreenState extends State<DynamicScreen>
170175
);
171176
super.initState();
172177
initTab();
178+
WidgetsBinding.instance.addPostFrameCallback((_)=>panelScreenState?.refreshScrollControllers());
173179
}
174180

175181
@override

lib/Screens/Navigation/home_screen.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import 'dart:async';
2-
import 'dart:io';
32

43
import 'package:flutter/material.dart';
5-
import 'package:flutter/services.dart';
64
import 'package:loftify/Api/recommend_api.dart';
75
import 'package:loftify/Resources/theme.dart';
86
import 'package:loftify/Screens/refresh_interface.dart';
@@ -11,6 +9,7 @@ import 'package:loftify/Widgets/PostItem/recommend_flow_item_builder.dart';
119
import 'package:waterfall_flow/waterfall_flow.dart';
1210

1311
import '../../Models/recommend_response.dart';
12+
import '../../Utils/app_provider.dart';
1413
import '../../Utils/constant.dart';
1514
import '../../Utils/ilogger.dart';
1615
import '../../Utils/responsive_util.dart';
@@ -22,7 +21,12 @@ import '../../generated/l10n.dart';
2221
int krefreshTimeout = 300;
2322

2423
class HomeScreen extends StatefulWidget {
25-
const HomeScreen({super.key});
24+
const HomeScreen({
25+
super.key,
26+
this.scrollController,
27+
});
28+
29+
final ScrollController? scrollController;
2630

2731
static const String routeName = "/nav/home";
2832

@@ -42,7 +46,8 @@ class HomeScreenState extends State<HomeScreen>
4246
bool _loading = false;
4347
int lastRefreshTime = 0;
4448
final EasyRefreshController _refreshController = EasyRefreshController();
45-
final ScrollController _scrollController = ScrollController();
49+
late final ScrollController _scrollController =
50+
widget.scrollController ?? ScrollController();
4651
int _currentPage = 0;
4752
int _currentOffset = 0;
4853
int _currentFeed = 0;
@@ -67,6 +72,7 @@ class HomeScreenState extends State<HomeScreen>
6772
_onLoad();
6873
}
6974
});
75+
WidgetsBinding.instance.addPostFrameCallback((_)=>panelScreenState?.refreshScrollControllers());
7076
}
7177

7278
_fetchData({bool refresh = false}) async {

lib/Screens/Navigation/mine_screen.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ class _MineScreenState extends State<MineScreen>
8181
autoForward: !Utils.isDark(context),
8282
controller: darkModeController,
8383
);
84+
panelScreenState?.refreshScrollControllers();
8485
});
8586
_fetchUserInfo();
8687
if (appProvider.token.isNotEmpty) {

lib/Screens/Navigation/search_screen.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ class SearchScreenState extends State<SearchScreen>
8686
FocusScope.of(context).requestFocus(_focusNode);
8787
});
8888
}
89+
WidgetsBinding.instance.addPostFrameCallback(
90+
(_) => panelScreenState?.refreshScrollControllers());
8991
}
9092

9193
initTab() {

0 commit comments

Comments
 (0)