5

Tengo una actividad con una barra de acciones y pestañas de la barra de acciones. Cuando elijo un elemento del contenido de las pestañas, trato de reemplazar el fragmento actual por uno nuevo, agregar la transacción a la pila posterior y ocultar las pestañas.Ocultar pestañas de ActionBar con modo de navegación que afectan negativamente al fragmento de backstack

Oculto las pestañas cambiando el modo de navegación de la barra de acciones al estándar.

El problema es que cuando presiono el botón Atrás, obtengo una vista en blanco con la barra de acciones (en modo estándar) .. La transacción de fragmento no parece invertirse.

Si no oculto las pestañas cambiando el modo de navegación a la altura, la reversión de transacciones funciona bien ..

he tratado anulando la prensa volver a cambiar el modo de navegación de vuelta a las pestañas, pero no funciona

¿Podría alguien decirme cómo lograrían esto?

Aquí está el código donde las pestañas quedan ocultos y la transacción fragmento tiene lugar:

 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(); 

Para mayor claridad: yo esperaría que al presionar hacia atrás después de esta transacción se ha confirmado, las pestañas volvería a la vista con el fragmento anterior. En este momento, después de presionar hacia atrás, no se muestran las pestañas O el fragmento.

Respuesta

8

No estoy seguro si esta pregunta todavía es relevante o no, pero parece estar teniendo suerte ocultando las pestañas después de la transición del fragmento.

De mi ListFragment, realizo una transición de fragmento estándar muy similar a cómo lo está haciendo en su código.

En mi fragmento de detalle, sin embargo, puedo ocultar la barra de acción en el método onCreate:

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    ActionBar actionBar = getActivity().getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

} 

y mostrar de nuevo en mi método onPause:

public void onPause() { 

    super.onPause(); 

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

} 
Cuestiones relacionadas