【发布时间】:2021-01-31 23:34:59
【问题描述】:
我已将 PageView 小部件封装在 Listener 小部件中。如果pointerSignal 是PointerScrollEvent,我检查onPointerSignal 属性以检测用户是否使用鼠标滚轮在小部件上滚动。然后它没有做奇怪的行为,而是产生了我 animateToPage 并将 PageView 的 physics 属性设置为 NeverScrollableScrollPhysics() 所以它不会干扰 animateToPage 转换。
这真的很酷!它通过移动鼠标滚轮以流畅的动画从一个页面跳转到另一个页面。
但是通过小部件测试来测试行为时会很有趣。有人知道如何发出/发送PointerScrollEvent 吗?我尝试了以下方法但没有成功。
void main() {
testWidgets(
'when mouse wheel moved forward then next page is shown',
(WidgetTester tester) async {
await tester.pumpWidget(
Test(
child: PointerAwarePageView(
children: [
Text('1'),
Text('2'),
],
),
),
);
expect(find.text('1'), findsOneWidget);
tester.dispatchEvent(
PointerScrollEvent(scrollDelta: Offset(0.0, 1.0)),
HitTestResult(),
);
await tester.pump(Duration(seconds: 3));
expect(find.text('2'), findsOneWidget);
},
);
}
【问题讨论】:
-
@Akif 不幸的是没有,在那个测试中他们实际上并没有触发事件。我需要知道
WidgetTester的哪些特定功能允许我触发PointerScrollEvent
标签: flutter flutter-test