bytedance / scene

Android Single Activity Framework compatible with Fragment.
Apache License 2.0
2.08k stars 198 forks source link

Scene 和 Fragment 的兼容方式 //How is Scene compatible with Fragment #69

Closed qii closed 3 weeks ago

qii commented 1 month ago

如果你的代码有大量的 Fragment,又想做 Single Activity,但是又不想重构从 Fragment 迁移到 Scene,有一种做法是,写一个 FragmentScene,复制 AndroidX 的 FragmentActivity 使用 FragmentController 加载 Fragment 的逻辑,实现 Scene 加载 Fragment,如果 FragmentController 有方法没有 public 权限,那么你可以把 FragmentScene 放到 AndroidX 的同 packagename 下面即可

因为逻辑跟 FragmentActivity 完全对齐,所以也就不需要你改动旧的 Fragment 的逻辑,他唯一的缺陷是未来升级 AndroidX 的时候,如果 FragmentActivity 有变化,可能需要你同步到 FragmentScene

后续 Scene 库会提供单独的 Module 附带上这个支持,甚至也可以基于 Scene 框架封装出一套使用 Fragment 的新导航库来

qii commented 3 weeks ago

https://github.com/bytedance/scene/wiki/Scene-load-Fragment 后续查看 Wiki 和 Demo