颤振,从颤振推送本机视图控制器后,这是否可能再次在原生视图控制器上方显示更多内容?



我有一个从框架实现的本机视图控制器,我不能直接将其更改为颤振视图。

所以我想我可以:

  1. flutter main appnative ViewController(第三方本机video player(中显示 UI。
  2. 然后我需要显示一些extra content(例如user avatar,一些text message等(above/on native ViewController
  3. 但是如果可能的话,我更喜欢用flutter来实现这些额外的内容?

这是好方法吗?如果没有,那么我认为必须做以下事情:

  1. 从颤振主应用程序以native ViewController(a video player)显示 UI。
  2. 然后显示一些extra content with native code

PS:为什么我不能将本机VideController更改为颤振? 这是因为它与本机视频播放器集成,集成了缓存逻辑,而我无法更改其中的源代码。

根据 [1] 的说法,有一些原生组件是可以的,因为在新的跨平台框架(如 Flutter(中并没有所有功能。

根据 [2],您可以使用容器中的装饰器分层显示内容,假设您可以显示嵌入到 Flutter 代码中的本机内容。在这种情况下,一定要使用方法 1。

但是,我只能从 Flutter 文档 [4] 中找到平台通道类型的解决方案来执行本机代码,例如它指出:

为了符合频道的 UI 线程要求,您可能需要从后台线程跳转到Android 的 UI 线程才能执行频道方法。

在平台频道的其他帖子 [3] 中:

当用户单击返回时,我想导航回颤振 [..]

两者都意味着所有本机内容都发生在本机线程和视图中,因此除了您的第二种方法之外,我认为除了所有内容都是本机方法之外,没有其他可能性。

因此,这一切都取决于您如何将本机元素适合 Flutter。如果您嵌入,请使用 Flutter 进行叠加,否则执行所有本机操作。我认为衡量这一点的好方法是,如果您在本机查看器中看到 Flutter 生成的代码中的任何内容,您就有机会覆盖,否则只需转到本机。


[1] 在 Flutter 中打开本机 UIViewController

[2] https://cogitas.net/overlay-text-icon-image-flutter/

[3] 如何将根视图控制器从本机 iOS 改回

颤振?[4] https://flutter.dev/docs/development/platform-integration/platform-channels

相关内容

  • 没有找到相关文章

最新更新