单个与多个片段容器

Single vs multiple fragment containers

我在 MVC 架构的项目中使用底部导航栏。我习惯于创建只使用一个片段容器的项目(通常我使用 MainActivity.kt/main_activity.xml),根据用户交互切换我的片段。

现在,由于我使用的底部导航栏是 main_activity.xml 的一部分(我将其用作我的片段容器),我认为应该将其用于所有包含底部导航栏的片段,并且不适用于不属于底部导航栏的所有其他片段。

我是否应该为所有不包含底部导航栏的片段创建第二个 activity/xml 作为第二个片段容器(例如,按下按钮打开一个没有任何内容的新片段)做和不包含底部导航栏)?或者我应该尝试将所有这些都塞进一个容器中吗?对于这种特殊情况,最好的方法是什么?

以我的愚见,我认为您不必为非底部导航片段创建另一个 activity。 如果您为此使用相同的 MainActivity 就没问题。 我的另一个建议是使用 Navigation Component,使一个 NavHostFragment 充当您的片段(目的地)容器。

探索 this article 以实现带有底部导航的导航组件。

此外,this article会让你知道如何在片段之间转移。