我正在往一个现有的Android项目中添加Flutter,一切都运行良好,除了一个问题:
我的Android项目只有一个Flutter模块,在这个Flutter模块中,我有两个路由将显示在Android项目的不同部分:
initialRoute: '/',
routes: {
'/': (_) => MyHomePage(),
'/settings': (_) => _SettingsPage()
}
如果在Android Activity中使用以下代码启动新的Flutter Activity:
startActivity(
FlutterActivity
.withCachedEngine(flutterEngineId)
.build(this)
)
它将使用默认页面路由(/
)开始Flutter,这是预期的结果。然后在此Flutter页面中,如果我返回,它将弹出Flutter引擎并导航回Android Activity。目前一切都很好。
但是,如果我启动一个具有自定义初始路由的Flutter活动,然后按下返回按钮,它将不会弹出Flutter引擎并导航到Android活动,而是导航到初始的Flutter路由(在这种情况下为/
路由)。
startActivity(
FlutterActivity
.withNewEngine()
.initialRoute("/settings")
.build(this)
)
如果我们在启动FlutterActivity
时指定了初始路由,为什么会出现这种行为?
如果这是期望的行为,那么最好的方法是让它导航到Android活动是什么?