mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-29 12:38:34 +00:00
@@ -22,7 +22,7 @@ abstract class CommonPageState<
|
||||
|
||||
Widget onBuild(Widget child) {
|
||||
if (_barOffset != null) {
|
||||
return NotificationListener<ScrollUpdateNotification>(
|
||||
return NotificationListener<ScrollNotification>(
|
||||
onNotification: onNotification,
|
||||
child: child,
|
||||
);
|
||||
@@ -30,22 +30,29 @@ abstract class CommonPageState<
|
||||
return child;
|
||||
}
|
||||
|
||||
bool onNotification(ScrollUpdateNotification notification) {
|
||||
if (!_mainController.useBottomNav) return false;
|
||||
|
||||
final metrics = notification.metrics;
|
||||
if (metrics.axis == .horizontal ||
|
||||
metrics.pixels < 0 ||
|
||||
notification.dragDetails == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final scrollDelta = notification.scrollDelta ?? 0.0;
|
||||
void _updateOffset(double scrollDelta) {
|
||||
_barOffset!.value = clampDouble(
|
||||
_barOffset!.value + scrollDelta,
|
||||
0.0,
|
||||
StyleString.topBarHeight,
|
||||
);
|
||||
}
|
||||
|
||||
bool onNotification(ScrollNotification notification) {
|
||||
if (!_mainController.useBottomNav) return false;
|
||||
|
||||
if (notification.metrics.axis == .horizontal) return false;
|
||||
|
||||
if (notification is ScrollUpdateNotification) {
|
||||
if (notification.dragDetails == null) return false;
|
||||
_updateOffset(notification.scrollDelta ?? 0.0);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (notification is OverscrollNotification) {
|
||||
_updateOffset(notification.overscroll);
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ class _DynamicsTabPageState
|
||||
_mainController.selectedIndex.value == 0;
|
||||
|
||||
@override
|
||||
bool onNotification(ScrollUpdateNotification notification) {
|
||||
bool onNotification(ScrollNotification notification) {
|
||||
if (checkPage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class _MediaPageState extends CommonPageState<MinePage, MineController>
|
||||
_mainController.selectedIndex.value == 0;
|
||||
|
||||
@override
|
||||
bool onNotification(ScrollUpdateNotification notification) {
|
||||
bool onNotification(ScrollNotification notification) {
|
||||
if (checkPage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user