我几乎尝试了一切,但似乎没有任何工作。我有一个带有这些碎片的导航抽屉,说: 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片段 - >禁用后退按钮
答案 0 :(得分:0)
只需在您的Activity中覆盖onBackPressed
,其中包含以下代码:
@Override
public void onBackPressed() {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count > 0) {
getSupportFragmentManager().popBackStack();
updateDrawerToggle();
}
}