5

Ho un'attività con una barra delle azioni e schede della barra delle azioni. Quando scelgo un elemento dal contenuto delle schede, sto provando a sostituire il frammento corrente con uno nuovo, aggiungere la transazione allo stack posteriore e nascondere le schede.Azione nascosta Schede Barra con modalità di navigazione che influisce negativamente sul backstack dei frammenti

Nascondo le schede modificando la modalità di navigazione della barra delle azioni su standard.

Il problema è che quando premo il pulsante Indietro, ottengo solo una vista vuota con la barra delle azioni (in modalità standard) .. La transazione frammento non sembra essere invertita.

Se non nascondo le linguette cambiando la modalità di navigazione a norma, lo storno della transazione funziona bene ..

ho provato sovrascrivendo la stampa indietro per cambiare la modalità di navigazione di nuovo a schede, ma non funziona

Qualcuno potrebbe dirmi come ottenerlo?

Ecco il codice in cui le schede vengono nascosti e la transazione frammento si svolge:

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

Per chiarezza: mi aspetterei che premendo indietro dopo tale operazione è stato commesso, le linguette sarebbe tornato alla vista con il frammento precedente. Al momento, dopo aver premuto indietro, non mostra le schede O il frammento.

risposta

8

Non sono sicuro che questa domanda sia ancora valida o meno, ma mi sembra che stia avendo la fortuna di nascondere le schede dopo la transizione del frammento.

Dal mio ListFragment, eseguo una transizione standard dei frammenti molto simile a come la stai facendo nel tuo codice.

Nel mio particolare frammento, però, mi nascondo nella barra delle operazioni nel metodo onCreate:

@Override 
public void onCreate(Bundle savedInstanceState) { 

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

} 

e mostrare di nuovo nel mio metodo onPause:

public void onPause() { 

    super.onPause(); 

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

} 
Problemi correlati