Транзакции фрагментов, панель действий и стопка

В моей основной деятельности у меня есть панель действий с NAVIGATION_MODE_TABS. Содержимое каждой вкладки представляет собой фрагмент списка.

Я хотел бы сделать так, чтобы при щелчке элемента списка отображался новый фрагмент, а режим панели действий менялся наNAVIGATION_MODE_STANDARD(так что вкладки теперь скрыты ).

Мне удалось заставить это работать со следующим кодом:

В методе listitemclick:

        ActionBar actionBar = getActivity().getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

        Fragment albumListFragment = new AlbumListFragment();
        albumListFragment.setArguments(bundle);
        FragmentTransaction ft = getFragmentManager().beginTransaction();

        ft.replace(android.R.id.content, albumListFragment);
        ft.addToBackStack(null);

        // Commit the transaction
        ft.commit();

        Log.i("FragmentList", "Item clicked: " + id);

Проблема в том, что когда я нажимаю кнопку «Назад», вкладки по-прежнему исчезают, а предыдущий фрагмент не возвращается в поле зрения.

Я делаю что-то не так.. Это как-то связано с бэкстеком фрагментов? Должен ли я сделать это по-другому, или даже отменить обратное нажатие?

--Изменить--

Для ясности -я вызываю addToBackStack при вызове fragmenttransaction.replace, но когда я нажимаю кнопку «Назад», предыдущий фрагмент не восстанавливается.

7
задан Tim Malseed 5 August 2012 в 02:08
поделиться