wonders/lib/ui/common/app_scroll_behavior.dart
2023-08-23 10:28:54 -06:00

27 lines
1013 B
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
import 'package:wonders/logic/common/platform_info.dart';
class AppScrollBehavior extends ScrollBehavior {
@override
// Add mouse drag on desktop for easier responsive testing
Set<PointerDeviceKind> get dragDevices {
final devices = Set<PointerDeviceKind>.from(super.dragDevices);
devices.add(PointerDeviceKind.mouse);
return devices;
}
// Use bouncing physics on all platforms, better matches the design of the app
@override
ScrollPhysics getScrollPhysics(BuildContext context) => const BouncingScrollPhysics();
// TODO: Finalize scrollbar strategy (Do we use them at all? Where specifically?)
@override
Widget buildScrollbar(BuildContext context, Widget child, ScrollableDetails details) {
//return child;
return PlatformInfo.isAndroid
? RawScrollbar(controller: details.controller, child: child)
: CupertinoScrollbar(controller: details.controller, child: child);
}
}