opt: stream listener

This commit is contained in:
guozhigq
2024-04-13 10:55:14 +08:00
parent 12a9e4746c
commit d48886ab1b
15 changed files with 120 additions and 185 deletions

View File

@ -0,0 +1,34 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/rendering.dart';
import 'package:get/get.dart';
import '../pages/home/index.dart';
import '../pages/main/index.dart';
void handleScrollEvent(
ScrollController scrollController,
// StreamController<bool> mainStream,
// StreamController<bool>? searchBarStream,
) {
StreamController<bool> mainStream =
Get.find<MainController>().bottomBarStream;
StreamController<bool> searchBarStream =
Get.find<HomeController>().searchBarStream;
EasyThrottle.throttle(
'stream-throttler',
const Duration(milliseconds: 300),
() {
final ScrollDirection direction =
scrollController.position.userScrollDirection;
if (direction == ScrollDirection.forward) {
mainStream.add(true);
searchBarStream.add(true);
} else if (direction == ScrollDirection.reverse) {
mainStream.add(false);
searchBarStream.add(false);
}
},
);
}