android-studio - 从活动重定向后如何设置特定的底部导航菜单片段
问题描述
在我的应用程序中,我有很多菜单。示例 A 片段、B 片段、C 片段和 D 片段。这都是底部导航菜单。所以,我的问题是如何回到底部导航的这个特定片段之一。
示例:我选择了菜单 A,现在片段 A 处于活动状态,我有一些对象,我已经选择了对象,现在我被重定向到对象活动。现在,在 Object Activity 中我有一个后退按钮,所以当我点击这个后退按钮时,我想回到 Fragment A 而不是 BottomNavigation 的默认主菜单,我想重定向到这个 Object 显示的位置,即 Fragment一个。
那么,我该怎么做。任何解决方案。
我尝试通过从 Object Activity 传递额外内容,并在设置了 BottomNavigation 的 HomeActivity 上接收。
if(getIntent().getExtras.get("FUN").toString.equals(null){
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.nav_graph_fragment,new WineShopFragment());
fragmentTransaction.commitNow();
bottomNavigationView.setSelectedItemId(R.id.wineShopFragment);
这样,它可以工作,但是在运行之后,它会返回到 Fragment A,但是,当我选择 Fragment B 或 Fragment c 或 Fragment D 时,Fragment A 的内容也会与另一个选定的 Fragment 一起显示。如果我选择 Fragment B 之后 Fragment A 和 B 将重叠显示内容一起显示。
那么,谁能告诉我如何在没有上述错误的情况下成功地做到这一点?
解决方案
Please add addToBackStack()
method in fragment
if(getIntent().getExtras.get("FUN").toString.equals(null){
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.nav_graph_fragment,new WineShopFragment());
fragmentTransactin.addToBackStack(null);
fragmentTransaction.commitNow();
bottomNavigationView.setSelectedItemId(R.id.wineShopFragment);
}
Add popBackStack()
method in backpress click in object activity rather than calling intent of homePage
public void backPressClick(){
//this will pop the last added fragment which is fragmentA in your case
getSupportFragmentManager().beginTransaction().popBackStack();
}
推荐阅读
- jquery - 无法在下拉“TypeError:selectobject.selected is undefined”中获取所选选项的文本
- reactjs - React 脚本标签内的 data-client-key
- man-in-the-middle - aircrack-ng 和 MITMf 可以与 Evil Twin 攻击一起使用吗?
- amazon-web-services - 解析器中的 AWS Appsync $ctx 与 $context
- matlab - ode15i 因尺寸而出错,这是什么意思?
- sql - Oracle 查询消除了不考虑 Null 的重复项
- azure - 向 IoT 中心提供消息中的时间戳
- ansible - Ansible:访问字符串json的数据
- node.js - 如何在不知道字段名称的情况下使用 expressjs 在前端显示来自 mongodb 的数据
- c# - 异步方法阻塞未等待的任务