dro*_*gel 8 gesture dart flutter flutter-test
我正在为一个小部件编写小部件测试,该小部件在用户通过GestureDetector使用onScaleUpdate属性回调实例化 a 对其执行缩放/缩放手势时处理操作。我知道如何在小部件测试中执行拖动、点击和长按,但我找不到在小部件测试中执行缩放手势的方法。
我尝试了几种方法,例如在相反方向上同时拖动:
final myWidget = find.byKey(const Key("myWidget"));
await tester.drag(myWidget, Offset(100, 0));
await tester.drag(myWidget, Offset(-100, 0));
Run Code Online (Sandbox Code Playgroud)
但拖动不能同时发生,框架迫使我await在执行第二次拖动之前完成拖动。
有没有办法在小部件测试中执行缩放/双指缩放/多指手势?
您可以使用createGesture()或startGesture()方法来WidgetTester创建两个或多个触摸并控制它们。这是一个例子:
final widgetFinder = find.byKey(ValueKey('Scalable widget'));
final center = tester.getCenter(widgetFinder);
// create two touches:
final touch1 = await tester.startGesture(center.translate(-10, 0));
final touch2 = await tester.startGesture(center.translate(10, 0));
// zoom in:
await touch1.moveBy(Offset(-100, 0));
await touch2.moveBy(Offset(100, 0));
await tester.pump();
// zoom out:
await touch1.moveBy(Offset(10, 0));
await touch2.moveBy(Offset(-10, 0));
await tester.pump();
// cancel touches:
await touch1.cancel();
await touch2.cancel();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |