mod: listener

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-02-25 12:38:20 +08:00
parent 0e69e23606
commit e236485bc7
29 changed files with 348 additions and 334 deletions

View File

@@ -225,29 +225,29 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
// 滑动事件监听
void scrollListener() {
_dynamicDetailController.scrollController.addListener(
() {
// 标题
if (_dynamicDetailController.scrollController.offset > 55 &&
!_visibleTitle) {
_visibleTitle = true;
_titleStreamC.add(true);
} else if (_dynamicDetailController.scrollController.offset <= 55 &&
_visibleTitle) {
_visibleTitle = false;
_titleStreamC.add(false);
}
_dynamicDetailController.scrollController.addListener(listener);
}
// fab按钮
final ScrollDirection direction = _dynamicDetailController
.scrollController.position.userScrollDirection;
if (direction == ScrollDirection.forward) {
_showFab();
} else if (direction == ScrollDirection.reverse) {
_hideFab();
}
},
);
void listener() {
// 标题
if (_dynamicDetailController.scrollController.offset > 55 &&
!_visibleTitle) {
_visibleTitle = true;
_titleStreamC.add(true);
} else if (_dynamicDetailController.scrollController.offset <= 55 &&
_visibleTitle) {
_visibleTitle = false;
_titleStreamC.add(false);
}
// fab按钮
final ScrollDirection direction =
_dynamicDetailController.scrollController.position.userScrollDirection;
if (direction == ScrollDirection.forward) {
_showFab();
} else if (direction == ScrollDirection.reverse) {
_hideFab();
}
}
void _showFab() {
@@ -269,7 +269,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
_titleStreamC.close();
_fabAnimationCtr?.dispose();
_fabAnimationCtr = null;
_dynamicDetailController.scrollController.removeListener(() {});
_dynamicDetailController.scrollController.removeListener(listener);
super.dispose();
}

View File

@@ -47,23 +47,7 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
..mid = dynamicsController.mid.value,
tag: widget.dynamicsType,
);
_dynamicsTabController.scrollController.addListener(() {
try {
StreamController<bool> mainStream =
Get.find<MainController>().bottomBarStream;
StreamController<bool> searchBarStream =
Get.find<HomeController>().searchBarStream;
final ScrollDirection direction = _dynamicsTabController
.scrollController.position.userScrollDirection;
if (direction == ScrollDirection.forward) {
mainStream.add(true);
searchBarStream.add(true);
} else if (direction == ScrollDirection.reverse) {
mainStream.add(false);
searchBarStream.add(false);
}
} catch (_) {}
});
_dynamicsTabController.scrollController.addListener(listener);
if (widget.dynamicsType == 'up') {
_listener = dynamicsController.mid.listen((mid) {
// debugPrint('midListen: $mid');
@@ -76,10 +60,28 @@ class _DynamicsTabPageState extends State<DynamicsTabPage>
.get(SettingBoxKey.dynamicsWaterfallFlow, defaultValue: true);
}
void listener() {
try {
StreamController<bool> mainStream =
Get.find<MainController>().bottomBarStream;
StreamController<bool> searchBarStream =
Get.find<HomeController>().searchBarStream;
final ScrollDirection direction =
_dynamicsTabController.scrollController.position.userScrollDirection;
if (direction == ScrollDirection.forward) {
mainStream.add(true);
searchBarStream.add(true);
} else if (direction == ScrollDirection.reverse) {
mainStream.add(false);
searchBarStream.add(false);
}
} catch (_) {}
}
@override
void dispose() {
_listener?.cancel();
_dynamicsTabController.scrollController.removeListener(() {});
_dynamicsTabController.scrollController.removeListener(listener);
dynamicsController.mid.close();
super.dispose();
}

View File

@@ -82,22 +82,22 @@ class _DynamicsPageState extends State<DynamicsPage>
debugPrint('upPanelPosition: $upPanelPosition');
if (GStorage.setting
.get(SettingBoxKey.dynamicsShowAllFollowedUp, defaultValue: false)) {
_dynamicsController.scrollController.addListener(() {
if (_dynamicsController.scrollController.position.pixels >=
_dynamicsController.scrollController.position.maxScrollExtent -
300) {
EasyThrottle.throttle('following', const Duration(seconds: 1), () {
_dynamicsController.queryFollowing2();
});
}
_dynamicsController.scrollController.addListener(listener);
}
}
void listener() {
if (_dynamicsController.scrollController.position.pixels >=
_dynamicsController.scrollController.position.maxScrollExtent - 300) {
EasyThrottle.throttle('following', const Duration(seconds: 1), () {
_dynamicsController.queryFollowing2();
});
}
}
@override
void dispose() {
_dynamicsController.tabController.removeListener(() {});
_dynamicsController.scrollController.removeListener(() {});
_dynamicsController.scrollController.removeListener(listener);
super.dispose();
}