在flutter仓库中的导航器测试中,他们使用NavigatorObserver类观察导航:
class TestObserver extends NavigatorObserver { onObservation onPushed; onObservation onPopped; onObservation onRemoved; onObservation onReplaced; @override void didPush(Route<dynamic> route, Route<dynamic> previousRoute) { if (onPushed != null) { onPushed(route, previousRoute); } } @override void didPop(Route<dynamic> route, Route<dynamic> previousRoute) { if (onPopped != null) { onPopped(route, previousRoute); } } @override void didRemove(Route<dynamic> route, Route<dynamic> previousRoute) { if (onRemoved != null) onRemoved(route, previousRoute); } @override void didReplace({ Route<dynamic> oldRoute, Route<dynamic> newRoute }) { if (onReplaced != null) onReplaced(newRoute, oldRoute); }}看起来它应该可以满足您的要求,但是它只能在顶层(MaterialApp)上运行,我不确定是否可以仅将其提供给小部件。



