Qual é o significado de addToBackStack (null) seguido por um commit ()?
Citando documentos:
Ao chamar addToBackStack (), a transação de substituição é salva na pilha de retorno para que o usuário possa reverter a transação e trazer de volta o fragmento anterior pressionando o botão Voltar.
Se você adicionar várias alterações à transação (como outro add () ou remove ()) e chamar addToBackStack (), todas as alterações aplicadas antes de chamar commit () serão adicionadas à pilha de retorno como uma única transação e o botão Voltar irá revertê-los todos juntos.
A ordem em que você adiciona alterações a uma FragmentTransaction não importa, exceto:
Você deve ligar por commit()
último. Se você estiver adicionando vários fragmentos ao mesmo contêiner, a ordem em que você os adiciona determina a ordem em que aparecem na hierarquia de visualizações.
Então você tem que se comprometer no final.
Por que você precisa passar um parâmetro nulo para addToBackStack?
Não precisa ser nulo, pode ser uma string. Se não quiser, basta passar null.
public abstract FragmentTransaction addToBackStack (nome da string)
Adicionado no nível 11 da API. Adicione esta transação à pilha de retorno. Isso significa que a transação será lembrada após ser confirmada e reverterá sua operação quando mais tarde for retirada da pilha.
Parâmetros name Um nome opcional para este estado de back stack ou nulo.
Relativo:
Parece que este código é inútil porque eu o executei sem a última linha .addToBackStack (null) .commit () e ele foi executado sem problemas
Se você deseja navegar para o fragmento anterior, adicione-o ao backstack. Portanto, depende se você deseja adicionar o fragmento à pilha de retorno.
Como obter esse fragmento após ser adicionado assim?
Você já tem a instância do fragmento firstFragment
. Portanto, não sei o que você quer dizer com obter o fragmento mais tarde.
Mais Informações @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)