抽屉打开而不是回去

时间:2015-06-26 16:43:26

标签: android android-fragments navigation-drawer

我有一个使用NavigationDrawer和工具栏的应用程序。当我点击NavigationDrawer中的一个菜单时,它会显示一个片段(让我们称之为fragment1)。里面的fragment1是一个按钮,点击时会显示另一个片段(fragment2)。

好的,当我在fragment1时,工具栏会显示一个汉堡包图标,当我点击它时,抽屉就会被打开。当我在fragment2时,工具栏会显示一个后退图标(向上插入符号)而不是汉堡包。好的,这是正确的,但当我点击后面的图标(向上插入符号)时,抽屉将被打开。那么我该怎么办呢,当点击后面的图标(向上插入符号)时,我会被带回到fragment1,而不是打开抽屉?

这是我的onClick for the drawer

@Override
        public void onClick(View v) {
            int position = getPosition();
            Fragment fragment = null;
            FragmentManager fManager = ((FragmentActivity) contxt).getSupportFragmentManager();
            FragmentTransaction transaction = fManager.beginTransaction();
            Toast.makeText(contxt, "The Item Clicked isss: " + position, Toast.LENGTH_SHORT).show();
            mDrawerLayout = (DrawerLayout) ((FragmentActivity) contxt).findViewById(R.id.dlMainDrawer);
            mDrawerLayout.closeDrawers();
            switch (position) {
                case 1:
                    fragment = new MenuHome(); 
                    transaction.replace(R.id.container, fragment, "fragmentHome");
                    transaction.addToBackStack(null);
                    transaction.commit();
                    break;
                case 2:
                    fragment = new MenuExpensesDaily(); 
                    transaction.replace(R.id.container, fragment, "fragmentExpensesDaily");
                    transaction.addToBackStack(null);
                    transaction.commit();
                    break;
                default:
                    break;
            }
        }

因此,使用上面的代码,我打开了MenuExpensesDaily的一个实例。在MenuExpensesDaily中,当我点击一个菜单项时,它会打开另一个片段,ExpensesDailyAdd,如下所示:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.menu_main, menu);

        MenuItem mItem = menu.findItem(R.id.tbAddExpenses);
        mItem.setVisible(true);
        mItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                ExpensesDailyAdd addExpenses = new ExpensesDailyAdd();
                getFragmentManager().beginTransaction()
                        .replace(R.id.container, addExpenses, null)
                        .addToBackStack(null)
                        .commit();
                return true;
            }
        });
    }

好的,现在当打开ExpensesDailyAdd时,汉堡包图标会变为向上插入符号。但是当我点击向上插入符号时,它会打开抽屉而不是回到上一个片段。

0 个答案:

没有答案