Collection screen now horizontally scrolls via mouse wheel.

This commit is contained in:
Alex Garneau
2025-03-24 09:51:09 -06:00
parent 6469ae1043
commit 9c773c23ff
2 changed files with 25 additions and 14 deletions

View File

@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:wonders/common_libs.dart'; import 'package:wonders/common_libs.dart';
import 'package:wonders/logic/collectibles_logic.dart'; import 'package:wonders/logic/collectibles_logic.dart';
import 'package:wonders/logic/data/collectible_data.dart'; import 'package:wonders/logic/data/collectible_data.dart';

View File

@ -47,6 +47,13 @@ class _CollectionListState extends State<_CollectionList> with GetItStateMixin {
} }
} }
void _handleMouseWheel(PointerSignalEvent event) {
if (event is PointerScrollEvent && event.kind == PointerDeviceKind.mouse && _vtMode.value == false) {
final offset = event.scrollDelta.dy;
scrollController.jumpTo(scrollController.offset + offset);
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
watchX((CollectiblesLogic o) => o.statesById); watchX((CollectiblesLogic o) => o.statesById);
@ -66,7 +73,9 @@ class _CollectionListState extends State<_CollectionList> with GetItStateMixin {
}) })
]; ];
// Scroll view adapts to scroll vertically or horizontally // Scroll view adapts to scroll vertically or horizontally
return SingleChildScrollView( return Listener(
onPointerSignal: _handleMouseWheel,
child: SingleChildScrollView(
controller: scrollController, controller: scrollController,
scrollDirection: _vtMode.value ? Axis.vertical : Axis.horizontal, scrollDirection: _vtMode.value ? Axis.vertical : Axis.horizontal,
child: Padding( child: Padding(
@ -82,6 +91,7 @@ class _CollectionListState extends State<_CollectionList> with GetItStateMixin {
], ],
), ),
), ),
),
); );
} }