尽管我已经使用 Android 多年,但这是我第一次Fragments在实际项目中使用。所以我有点困惑:-P
这个应用程序有NavigationDrawer4 个主要部分。我只使用了一个 main Activity,Layout它的内容View被替换为Fragments. When an option in the NavigationDraweris selected, I instantiate a Fragmentand put it in that content View. 我正在做这样的事情:
    private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        selectItem(position);
    }
}
public static int drawerSelectedOption = 0;
private void selectItem(int position) {
    drawerSelectedOption = position;
    Fragment fragment = null;
    switch (position) {
        case 0:
            fragment = new StoresFragment();
            break;
        case 1:
            //promos
        case 2:
            fragment = new TransactionsFragment();
            break;
        case 3:
            break;
        case 4:
            fragment = new Settings();
            break;
    }
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
    // update selected item and title, then close the drawer
    mDrawerList.setItemChecked(position, true);
    setTitle(mSectionTitles[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
}
更多Fragments的是从每个主力内部推NavigationDrawer Fragments。因此,每个主“屏幕”内部都有几个子屏幕,如下所示。
Drawer __ Fragment 1.0  -- Fragment 1.1 -- Fragment 1.2
      |__ Fragment 2.0  -- Fragment 2.1 -- Fragment 2.2
我正在Fragments从以前的Fragment ActionBar菜单中推动那些内部,如下所示:
FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        OrderCreateFragment fragment = new OrderCreateFragment();
        fragmentTransaction.add(R.id.content_frame, fragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
我面临着几个问题,这就是为什么我正在寻找有关这种方法的一些建议:
- 我什至不知道如何正确管理ActionBar菜单项。每个Fragment都有自己的菜单,有时它们会卡在栏中(即,如果Fragments通过点击NavigationDrawer而不是使用 Android 后退键返回)进行切换
- StackBack选择其中一个选项时应完全弹出- NavigationDrawer。我怀疑我的- ActionBar凌乱物品与此有关,因为- Fragments它们以某种方式保存在堆栈中。
那么,任何人都可以请教这是否是一种正确的方法以及如何解决与StackBack和 的问题ActionBar?
更新:看起来清除 selectItem 方法上的整个堆栈解决了两个主要问题。尽管我仍然有兴趣听取有关这种方法的意见。