在 android 中使用底部导航的最佳实践:activity 与片段

Best practise to use bottom navigation in android: activity vs fragment

我来自 iOS,正在努力在 android 上移植一个 iOS 应用程序。在 iOS 中有故事板,您可以在其中连接不同的视图(活动)并将它们嵌入到选项卡栏和导航栏中。我无法理解在 android...

中实现底部导航的最佳方式是什么

假设我有 3 个底部导航项,其中

  1. tab1

    • page1.1
      • page1.2
  2. tab2

    • page2.1
      • page2.2
        • page2.3
  3. tab3

    • page3.1
      • page3.2
        • page3.3

作为 tab1 中的示例,我有 page1.1。然后假设我在 page1.1 中有一个按钮,它将我带到 page1.2。如果我从 page1.2 返回,我想返回到 page1.1。 page2.1 的情况相同,我可以转到 page2.2,从 page2.2 可以转到 page2.3。我也想从 page3.2 转到 page 1.2

我读过片段是最好的方法(每个 page.x 是成为一个具有不同布局的不同片段)但它似乎并不容易。我也读过我可以使用活动,但很多人建议不要使用它

你建议我关注什么?除了片段和活动之外,还有其他解决方案需要考虑吗?谢谢

您应该将 Fragments 与 Single Activity 一起使用。如果不这样做,您将不得不在多个活动中 copy/include 一个底栏。它在某些情况下可能很有用,但是当切换 Activity 时,您的栏将重新绘制,这可能会导致糟糕的用户体验。

I have read fragments are the best way to do it (each page.x is to become a different fragment with a different layout) but it does not seem very easy

使用 Fragments 实际上可能比使用 Activity 更容易。如果您使用片段,您可以让一个 Activity 控制正在显示的每个片段,这意味着您可以根据显示的片段控制导航。这样,您就可以处理一些不属于通常导航行为的特殊场景。 在 Activity 中做同样的事情会稍微困难一些,因为您必须不断地在 Intents 中传递数据,而且由于您的逻辑将分布在 Activity 中,因此很难控制行为。

What do you recommend that I focus on? Are there any other solution to consider on top of fragment and activities?

这两个只是推荐方案。如果你的某些 UI 元素在所有页面中都是相同的,而其中的某些部分不断变化,那么最好使用单个 Activity 的片段。对于完全不同或不属于您的导航流程的屏幕,您可以为它们添加更多 Activity 而不是 Fragments。
例如,您可以将 Fragments in One Activity 与底部导航栏一起使用,但对于设置屏幕或个人资料屏幕,您应该制作单独的 Activites。