Sunshow
Sunshow
我这边用原生TabBar+flutter fragment就碰到了这个问题,试了无数种方案解决不了,最后把TabBar也放到Flutter实现就好了
> > 我这边用原生TabBar+flutter fragment就碰到了这个问题,试了无数种方案解决不了,最后把TabBar也放到Flutter实现就好了 > > 这个解决方式是什么原理?没有想出是什么能成功 原理应该是这么实现以后 flutter boost 只是负责渲染了整个tabbar,就不存在多次attach和detach了,每个tab的页面是flutter内部渲染了
另外我也是最近才发现这个问题,还以为是升级到了 flutter3 的原因兼容性问题导致的呢。 复现也不是每一次都能复现,在iPhone12和iPhone13上非常容易复现(因为性能好启动非常快),而在更老的机型基本不会触发,在模拟器上也极难触发,Android上没有这个问题。
暂时解决办法只能是自己 fork 参考上面的 PR 改了,偷懒的同学可以先用我改好的依赖: ```yaml flutter_boost: git: url: 'https://github.com/Sunshow/flutter_boost.git' ref: 'ce38690dcb450f20425793d0bfeba4c8bf8fe9bb' ```
> 按照以下步骤适配Flutter 3.29: > > 1. `FlutterMain.findAppBundlePath()`改用`FlutterInjector.instance().flutterLoader().findAppBundlePath()`代替; > 2. `extends FlutterApplication`改为`extends Application`,并在`onCreate`中调用`FlutterInjector.instance().flutterLoader().startInitialization(this);` > 3. PluginRegistry相关的函数直接删除即可。 按您这个方法试了一下,别的没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的MethodChannel
> > > 按照以下步骤适配Flutter 3.29: > > > > > > 1. `FlutterMain.findAppBundlePath()`改用`FlutterInjector.instance().flutterLoader().findAppBundlePath()`代替; > > > 2. `extends FlutterApplication`改为`extends Application`,并在`onCreate`中调用`FlutterInjector.instance().flutterLoader().startInitialization(this);` > > > 3. PluginRegistry相关的函数直接删除即可。 > > > > >...
> 是docker 部署吗 是的