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

在android中使用底部导航的最佳实践:活动与片段,android,android-fragments,android-activity,fragment,bottomnavigationview,Android,Android Fragments,Android Activity,Fragment,Bottomnavigationview,我来自iOS,正在努力在android上移植iOS应用程序。在iOS中,有一个故事板,您可以在其中连接不同的视图(活动),并将它们嵌入到选项卡栏和导航栏中。我有一个问题要理解什么是在android中实现底部导航的最佳方式 假设我有3个底部导航项,如下所示 表1 第1.1页 第1.2页 表2 第2.1页 第2.2页 第2.3页 表3 第3.1页 第3.2页 第3.3页 作为表1中的一个例子,我有第1.1页。然后假设我在第1.1页有一个按钮,它将我带到第1.2页。如果

我来自iOS,正在努力在android上移植iOS应用程序。在iOS中,有一个故事板,您可以在其中连接不同的视图(活动),并将它们嵌入到选项卡栏和导航栏中。我有一个问题要理解什么是在android中实现底部导航的最佳方式

假设我有3个底部导航项,如下所示

  • 表1

    • 第1.1页
      • 第1.2页
  • 表2

    • 第2.1页
      • 第2.2页
        • 第2.3页
  • 表3

    • 第3.1页
      • 第3.2页
        • 第3.3页
  • 作为表1中的一个例子,我有第1.1页。然后假设我在第1.1页有一个按钮,它将我带到第1.2页。如果我从第1.2页返回,我想返回到第1.1页。第2.1页也一样,我可以转到第2.2页,从第2.2页我可以转到第2.3页。我还想从第3.2页转到第1.2页

    我读过碎片是最好的方法(每个页面.x都是用不同的布局变成不同的碎片),但这似乎并不容易。我也读过《我可以使用活动》,但很多人建议不要使用它


    你建议我关注什么?在片段和活动的顶部还有其他的解决方案吗?谢谢

    您应该在单个活动中使用片段。如果不这样做,您将不得不在多个活动中复制/包括一个底部栏。在某些情况下,它可能很有用,但是当活动被切换时,您的工具栏将被重新绘制,这可能会导致糟糕的用户体验

    我已经读过片段是最好的方法(每个页面.x都是以不同的布局变成不同的片段),但这似乎并不容易

    使用片段实际上可能比使用活动更容易。如果您使用片段,您可以让一个活动控制显示的每个片段,这意味着您可以根据显示的片段控制导航。通过这种方式,您可以处理一些不属于常规导航行为的特殊场景。 在活动中执行同样的操作会有点困难,因为您必须在意图中不断传递数据,并且很难控制行为,因为您的逻辑将在活动中传播

    你建议我关注什么?在片段和活动的顶部还有其他的解决方案吗? 这两个只是推荐的解决方案。如果您的一些UI元素在所有页面中都是相同的,而其中的某些部分是不断变化的,那么最好将片段用于单个活动。对于完全不同或不属于导航流程的屏幕,您可以为其添加更多活动,而不是片段。

    例如,您可以在底部导航栏的一个活动中使用片段,但对于设置屏幕或配置文件屏幕,您应该单独创建活动。

    您好,非常感谢!如果您需要使用Facebook这样的应用程序(多个选项卡,每个选项卡有多个导航页),您更愿意使用片段还是活动?@mactrix对于主仪表板,我会使用一个包含片段的活动,对于设置,我会使用活动的配置文件屏幕。@mactrix片段不能单独使用,必须将它们添加到活动中。请在此阅读更多信息,谢谢。是的,我明白。必须有一个底层活动来支持片段。好的,我将进行1个活动和尽可能多的片段。这可能是20个碎片。你知道我在记忆中保存这些片段时会不会有问题吗。我基本上希望每个选项卡都能保留所有片段的内存,这样我就可以切换到另一个选项卡并查看最新的片段(我不想每次都重新创建片段并重新加载数据)@mactrix一次只加载一个片段并可见,所以并没有问题。不要引用每个片段。现在,你说有20个片段,如果它们的布局相同,内容不同,为什么不使用1个片段,每次传递不同的数据?