首页 > 解决方案 > 从活动重定向后如何设置特定的底部导航菜单片段

问题描述

在我的应用程序中,我有很多菜单。示例 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 将重叠显示内容一起显示。

那么,谁能告诉我如何在没有上述错误的情况下成功地做到这一点?

标签: android-studioandroid-fragmentsfragmentandroid-fragmentactivitybottomnavigationview

解决方案


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();
}

推荐阅读