1、使用flutter-boost的路由跳转,在ios中自动弹出键盘会很卡顿,这是因为键盘弹出过程页面还在渲染,需要在页面渲染之后弹出,但是ios可以第一次进入页面监听 addBoostContainerLifeCycleObserver 生命周期,安卓不行 https://github.com/alibaba/flutter_boost/issues/849,所以通过判断平台方法来主动弹出键盘
_lifeCycleObserver = FlutterBoost.singleton.addBoostContainerLifeCycleObserver((ContainerLifeCycle state, BoostContainerSettings settings) {/// 此生命周期在安卓中第一次进入不会执行,ios正常if (settings.name == RouterVariable.LOGIN_PHONE_NUMBER) {if (state == ContainerLifeCycle.Appear && Platform.isIOS) {FocusScope.of(context).requestFocus(_focusNode);}}});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {if (Platform.isAndroid) {_showKeyboard();}});
2、还是键盘问题,flutter页面中有键盘没有释放的话,进入原生页面有可能会被唤起,并且键盘无法收回,这样就需要进入原生页面后将flutter页面释放,可以在devtool中看到页面状态树,需要原生开发发起广播通知flutter释放页面。除此之外,也要注意开发过程中避免路由栈过大,这样很容易造成内存泄漏
