mirror of
https://github.com/gskinnerTeam/flutter-wonderous-app.git
synced 2025-05-19 22:06:36 +08:00
Collection screen now horizontally scrolls via mouse wheel.
This commit is contained in:
@ -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';
|
||||||
|
@ -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,20 +73,23 @@ 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(
|
||||||
controller: scrollController,
|
onPointerSignal: _handleMouseWheel,
|
||||||
scrollDirection: _vtMode.value ? Axis.vertical : Axis.horizontal,
|
child: SingleChildScrollView(
|
||||||
child: Padding(
|
controller: scrollController,
|
||||||
padding: EdgeInsets.all($styles.insets.lg),
|
scrollDirection: _vtMode.value ? Axis.vertical : Axis.horizontal,
|
||||||
child: SeparatedFlex(
|
child: Padding(
|
||||||
direction: _vtMode.value ? Axis.vertical : Axis.horizontal,
|
padding: EdgeInsets.all($styles.insets.lg),
|
||||||
mainAxisSize: MainAxisSize.min,
|
child: SeparatedFlex(
|
||||||
separatorBuilder: () => Gap($styles.insets.lg),
|
direction: _vtMode.value ? Axis.vertical : Axis.horizontal,
|
||||||
children: [
|
mainAxisSize: MainAxisSize.min,
|
||||||
...collections,
|
separatorBuilder: () => Gap($styles.insets.lg),
|
||||||
Gap($styles.insets.sm),
|
children: [
|
||||||
if (kDebugMode) _buildResetBtn(context),
|
...collections,
|
||||||
],
|
Gap($styles.insets.sm),
|
||||||
|
if (kDebugMode) _buildResetBtn(context),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user