我的 Android 应用程序实际上有一点问题。
我的应用程序包含一个导航抽屉,用于在应用程序内部导航。例如
导航抽屉:
- 概述
- 搜索
- 用户
- 东西
当应用程序启动时,我将加载概述片段。如果用户单击其他项目,我将更改片段:
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment, TAG);
transaction.addToBackStack(null);
transaction.commit();
现在的问题是,当用户切换时,例如,从 1 > 2 > 4 > 3 并且他们按下返回键,它只会让他返回一个片段。3 > 4 > 2 > 1
所以我添加了代码,这将使他在每个 Backpress 上回到 Fragment 1。
public boolean onKeyDown(int keyCode, KeyEvent event) {
int exit = 0;
if (keyCode == KeyEvent.KEYCODE_BACK) {
getFragmentManager().popBackStack();
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = new Overview();
fm.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("fragBack").commit();
return false;
}
return false;
}
好的,首先它很好,但现在我在更深层次上添加了更多片段,但它们不应该在背压时回到片段 1。
例如
- 概述(主要片段)
- 搜索(返回键返回片段 1)
- 用户(返回键返回片段 1)
- 东西(返回键返回片段 1)
4.1 细节(Back Key 回到 Fragment 4. Stuff) < 4.1.1 更多细节(Back Key 回到 Fragment 4.1)
如果有人知道我如何在我的应用程序中处理导航,那就太好了。
格雷茨