屏幕无后退按钮时如何返回上一屏幕? 附加信息:我正在尝试对 flutter 应用程序进行自动化集成测试。屏幕上没有后退按钮,我可以使用它返回屏幕。 附加信息:我正在编写集成测试,因此我需要返回到上一个屏幕。由于设计原因,屏幕上没有后退按钮,我只需要通过脚本来完成。
这就是动画包中的 OpenContainers 对我有用的内容:
final NavigatorState navigator = tester.state(find.byType(Navigator));
navigator.pop();
await tester.pump();
在flutter包的测试中使用:
如果测试的目的是强调并验证
WillPopScope
回调,则可以使用以下方法:
final dynamic widgetsAppState = _._tester.state(find.byType(WidgetsApp));
await widgetsAppState.didPopRoute();
这在 Flutter 官方存储库中用于测试:https://github.com/flutter/flutter/blob/master/packages/flutter/test/material/will_pop_test.dart
请注意,此方法也适用于模拟 Android 上按下 后退按钮。
final backButton = find.byTooltip('Back');
await driver.tap(backButton);
或:
await driver.tap(find.pageBack());
final backButton = find.byTooltip("Back");
await tester.tap(backButton);
await tester.pumpAndSettle();
theme: ThemeData(
pageTransitionsTheme: PageTransitionsTheme(
builders: {
TargetPlatform.android: CupertinoPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
}
)
),
...
if(Platform.isAndroid) {
await Process.run('input', <String>['keyevent', 'KEYCODE_BACK'] );
}
...
希望对你有帮助!