导航抽屉嵌套片段

时间:2017-07-21 04:48:00

标签: android android-fragments navigation

我几乎尝试了一切,但似乎没有任何工作。我有一个带有这些碎片的导航抽屉,说: A - viewpager B - listview C - listview 现在在B和C中,listview是可点击的项目,每个项目都有自己的片段。所以ListViewA有一个片段,ListViewB有一个片段。 我想要适当的后退导航。这是我在初始化导航抽屉时的方式:

Fragment fragment = getHomeFragment();
                FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
                fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
                        android.R.anim.fade_out);
                fragmentTransaction.replace(R.id.frame, fragment, CURRENT_TAG);
                fragmentTransaction.commit();

从listview中选择一个选项时:

final FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.setCustomAnimations(android.R.anim.fade_in,
                        android.R.anim.fade_out);
                ft.replace(R.id.frame, new FragmentB(),"HubSettings");
                ft.addToBackStack(null);
                ft.commit();

如果我在两个事务中都放了addtoBackStack(),那么后退导航工作正常但导航抽屉标题没有正确设置。我想禁用后退按钮并强制更改导航抽屉中的碎片,以便正确设置操作栏标题。在CFragment方面,如何禁用后退按钮?

可以从菜单中选择: 导航抽屉 - > B片段 - > Listview选项1片段 按下 - >返回B片段 - >禁用后退按钮

1 个答案:

答案 0 :(得分:0)

只需在您的Activity中覆盖onBackPressed,其中包含以下代码:

@Override
public void onBackPressed() {

    int count = getSupportFragmentManager().getBackStackEntryCount();       

    if (count > 0) {
        getSupportFragmentManager().popBackStack();
        updateDrawerToggle();            
    }

}