30 lines
1.1 KiB
Dart
30 lines
1.1 KiB
Dart
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/foundation.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);
|
|
if (kDebugMode) {
|
|
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);
|
|
}
|
|
}
|