Android – Empilhando Fragments para navegação.(navigate backward through the fragment transactions)

android_activity_fragment

Tenha em mente que quando você executa transações de fragments, tais como substituir ou remover um, muitas vezes é apropriado permitir que o usuário navegue para trás para “desfazer” a mudança.

Para permitir que o usuário navegue para trás através das operações de fragmentos, você deve chamar o addToBackStack()  antes de dar commit no FragmentTransaction.

getFragmentManager().beginTransaction()
	.replace(R.id.content_frame, new FragConsulta2())
	.addToBackStack(null)
	.commit();

Quando você  substitui um fragment e adiciona a transação para a pilha de volta (addToBackStack), o fragmento que é retirado é parado (não destruído). Se o usuário navega de volta o fragment anterior é reiniciado. Se você não adicionar a transação para a pilha de volta, em seguida, o fragment é destruído quando for substituído.

Caso haja a necessidade de “limpar” a pilha, ou seja estourar todos os backStack basta executar:

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStack();