有关Android中的BottomNavigationView的问题

问题描述

我对BottomNavigationView有一般性问题。我想在App的每个活动中都有一个BottomNavigationView,用于订购某些东西(例如食物)。它应该有4个按钮:

  • 返回
  • 信息
  • 统计
  • 我的订单

使用“返回”,该应用应仅返回上一个活动。 “状态”和“我的订单”这两个按钮应切换为一个持久性活动,当不显示时不应该销毁该活动。 “我的订单”应显示最近的订单。按钮的“信息”应该仅显示有关当前项目或当前菜单的一些信息(取决于调用它的活动)。所以基本上我有两个问题:

  1. 活动“信息”,“统计”和“我的订单”是真实活动还是片段?通常,我认为从“统计”和“我的订单”开始,它们应该是真实的活动,因为它们是持久的。但是在许多BottomNavigationView中,仅使用片段吗?
  2. 如何将内容信息传递给活动/片段“信息”。此活动/片段应显示基于调用该活动的信息。假设活动是不同的菜。我是否需要为每个菜创建一个单独的信息活动/片段?还是我可以以某种方式定义一个动态的活动/片段来显示基于当前活动的信息?

感谢您的每条评论,也非常感谢您的帮助。

解决方法

  1. 推荐的方法是Single ActivityMultiple fragments。 您可以使用Jetpack's Navigation Component
  2. 如果您需要通过data from an Activity/Fragment to the new calling Fragment,可以先通过setting arguments on the calling fragment然后通过getting it on the called fragment完成。如果有something which requires to be dynamic,for example- dishes fragment,则make a single fragment and common layout and load the data dynamically from the backend

对于设置参数,这应该有所帮助

How to pass a variable from Activity to Fragment,and pass it back?

注意:您可以不使用Navigation Components而使用片段,但必须使用FragmentManager and FragmentTransaction and also have to maintain the Backstack by yourself which could be quite complicated

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...