【发布时间】:2018-04-06 00:06:33
【问题描述】:
在我的应用程序中,我使用了 android 导航抽屉。基本上,它工作正常。在那个用户可以使用导航抽屉导航到关于我们、主页等片段。但是当我在标题栏上实现一个后退按钮时,它会打开导航抽屉而不返回上一个片段。
例如:-
假设一位用户启动了应用程序,现在他被定向到主页片段。然后用户使用导航抽屉导航到“关于我们”片段,然后他尝试使用后退按钮返回主页片段。当他按下后退按钮时,导航抽屉打开,而不会将他带到主页片段。
我假设 Android 也将打开导航抽屉操作添加到后退堆栈。
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else{
super.onBackPressed();
}
}
这就是我在onNavigationItemSelected(MenuItem item) 中更改片段的方式
if(fragment1 != null){
FragmentManager fragmentManager = getSupportFragmentManager();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.screen_area, fragment1).addToBackStack("fragment");
ft.commit();
}
那么,有什么方法可以返回到上一个片段页面逃逸打开导航抽屉?或者有什么办法可以得到以前的片段?
【问题讨论】:
-
如果我建议,您必须在抽屉关闭时添加片段,这意味着当您的抽屉关闭时,会添加更多片段。所以现在,你不需要在你的背压方法中处理它了。
-
@SahilKumar 所以这意味着我需要在进行交易之前检查抽屉是否关闭?
-
不只是将抽屉监听器添加到您的抽屉布局中并在您的抽屉关闭()方法中执行所有事务
-
好的.. 如果您卡在任何地方,请告诉我。我会做一个回答。快乐编码