美文网首页
在flutter页面上弹出一个透明页面卡死问题

在flutter页面上弹出一个透明页面卡死问题

作者: CodeLuck | 来源:发表于2023-08-22 19:06 被阅读0次

问题:
在开发flutter页面的时候,有一个需求是在flutter页面上弹出一个背景透明的flutter页面,在iOS端需要用到present弹出,弹出页面后,点击进行dismiss后,底部页面卡死。

我们的flutter路由用的flutter_boost,,看了下在模态overfull一个新页面,dismiss的时候底部页面的生命不会触发,导致了flutter页面卡死。

解决办法:
在flutter_boost的popRoute代理方法里获取一下底部页面,然后手动调用页面的生命周期:

- (void)refreshTopContainerViewController {
    
    id<FBFlutterContainer> container = self.containerManager.getTopSecondContainer;
    
    /// 调用位置 判断确定是present的页面(通过opaque==false确定),获取当前弹出页面的底部页面,优先进行渲染一次防止底部页面卡死
    if (container && [container isKindOfClass:[FBFlutterViewContainer class]] && container.opaque == YES) {
        FBFlutterViewContainer *topVc = container;
        FlutterBoost.instance.engine.viewController = topVc;
        [topVc surfaceUpdated:YES];
        [topVc beginAppearanceTransition:YES animated:NO];
        [topVc endAppearanceTransition];
    }
}

相关文章

网友评论

      本文标题:在flutter页面上弹出一个透明页面卡死问题

      本文链接:https://www.haomeiwen.com/subject/ljpumdtx.html