【发布时间】:2022-01-03 05:52:01
【问题描述】:
我正在尝试使页面在 web 上的鼠标滚动 (snap) 上切换,因为默认情况下它不支持在颤振中。但是, animateTo 方法没有产生任何效果,并且滚动仍在继续。 我使用按钮尝试了 animateTo 并且它有效。我不太清楚为什么它不能以这种方式工作。
代码如下:
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
class MainView extends StatelessWidget {
MainView({Key? key}) : super(key: key);
final PageController controller = PageController(initialPage: 0);
@override
Widget build(BuildContext context) {
if (kIsWeb) {
// running on the web!
return Listener(
onPointerSignal: (pointerSignal) {
if (pointerSignal is PointerScrollEvent) {
if (pointerSignal.scrollDelta.dy > 0) {
// scroll down
controller.nextPage(
duration: const Duration(seconds: 1), curve: Curves.ease);
} else if (pointerSignal.scrollDelta.dy < 0) {
controller.previousPage(
duration: const Duration(seconds: 1), curve: Curves.ease);
}
}
},
child: PageView(
scrollDirection: Axis.vertical,
pageSnapping: false,
controller: controller,
children: const <Widget>[
Center(
child: Text('First Page'),
),
Center(
child: Text('Second Page'),
),
Center(
child: Text('Third Page'),
)
],
),
);
} else {
// NOT running on the web! You can check for additional platforms here.
return const Container();
}
}
}```
【问题讨论】:
标签: flutter flutter-web