从活动重定向后,如何设置特定的BottomNavigation Menu Fragment?

问题描述 投票:0回答:1

在我的应用中,我有很多菜单。例如A片段,B片段,C片段,& D片段。这些都是底部导航菜单。所以,我的问题是我如何回到BottomNavigation的其中一个特定Fragment。

举个例子。我选择了菜单A, 现在A片段是活的, 在那里我有一些对象, 我选择了对象,现在我被重定向到对象活动。现在,在Object Activity中,我有一个后退按钮,所以当我点击这个后退按钮时,我想回到Fragment A,而不是BottomNavigation的默认主菜单,我想被重定向到这个Object显示的地方,也就是Fragment A。

那么,我怎么才能做到这一点呢。有什么解决办法吗。

我试过从Object Activity中传递额外的信息,然后在HomeActivity上接收BottomNavigation设置的地方。

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-studio android-fragments fragment android-fragmentactivity bottomnavigationview
1个回答
0
投票

请补充 addToBackStack() 片断法

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

添加 popBackStack() 在对象活动中的反按点击方法,而不是调用主页的意图。

public void backPressClick(){
        //this will pop the last added fragment which is fragmentA in your case
        getSupportFragmentManager().beginTransaction().popBackStack();
}
© www.soinside.com 2019 - 2024. All rights reserved.