En mi actividad principal, tengo una barra de acciones con NAVIGATION_MODE_TABS
. El contenido de cada pestaña es un listfragment.Fragmentar transacciones, barra de acciones y backstack
Me gustaría que cuando se haga clic en un elemento de lista, se visualice un nuevo fragmento y el modo de barra de acciones se cambie a NAVIGATION_MODE_STANDARD
(de modo que las pestañas estén ahora ocultas).
he logrado conseguir que esto funcione con el siguiente código:
En el método 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);
El problema es cuando se presiona el botón de retroceso, las pestañas están todavía desaparecido, y el fragmento anterior no vuelve a aparecer.
Estoy haciendo algo mal .. ¿Tiene algo que ver con el fragmento de backstack? ¿Debo hacerlo de otra manera, o incluso anular la contrapresión?
--Edit--
Para mayor claridad - Estoy llamando addToBackStack cuando llamo fragmenttransaction.replace, pero al pulsar el botón de retroceso, el fragmento anterior no se restablece.
revise este enlace una vez http://www.vogella.com/articles/Android/article.html#fragments_tutorial – shassss
Gracias, pero no particularmente útil para esta pregunta .. –
Usando addToBackStack es lo que quiere. http://developer.android.com/guide/components/fragments.html#Transactions – Frohnzie