Carla está criando um aplicativo Android com o layout dividido em fragmentos, em que cada fragmento utiliza um recurso de layout. Em um dos fragmentos, ela implementou a resposta ao toque sobre um FloatingActionButton, invocando a navegação para um segundo fragmento. Para o aplicativo executar de forma adequada, ela observou o ciclo de vida dos fragmentos e implementou a funcionalidade no método:
- A)onCreateView;
Correta, porque onCreateView é o momento de inflar a interface do fragmento e configurar os elementos de tela, como o FloatingActionButton e seu listener.
- B)onCreate;
Errada, pois onCreate é voltado à inicializacao geral do fragmento, mas ainda nao é o ponto mais adequado para manipular a view do layout.
- C)onStart;
Errada, porque onStart ocorre depois que o fragmento ja foi criado e iniciado, nao sendo o momento tipico para montar e ligar a interface.
- D)onAttach;
Errada, pois onAttach serve para associar o fragmento à Activity hospedeira, e nao para tratar eventos da interface.
- E)onResume.
Errada, porque onResume é chamado quando o fragmento volta a ficar interativo, mas a configuracao da navegacao por clique ja deveria estar feita antes.
Gabarito: A
Quando voce trabalha com Fragmentos no Android, o ciclo de vida manda muito no que pode ser feito em cada etapa. A ideia aqui é simples: cada momento do fragmento serve para uma tarefa diferente, e isso evita erro de interface, navegação fora de hora e aquele comportamento esquisito que faz o app parecer "vivo demais" ou atrasado demais. No caso da questao, Carla quer responder ao toque de um FloatingActionButton para navegar para outro fragmento. Para isso, ela precisa implementar a funcionalidade no momento em que a interface do fragmento esta sendo criada, porque é ali que a view do fragmento existe e pode receber configuracoes, listeners e eventos de clique. Por isso, o gabarito é a alternativa A, onCreateView. Doutrinariamente, o onCreateView é o metodo responsavel por inflar e retornar a view do fragmento. E justamente nessa fase que voce costuma ligar componentes de tela, como botao, campo de texto e listeners. Se voce tentar depender de um momento anterior, pode ainda nao haver view pronta; se deixar para um momento posterior, a interface ja pode estar visivel, mas a preparacao ideal para a navegacao ja deveria ter ocorrido. Em provas, a banca gosta de testar essa diferença entre o ciclo de vida do fragmento e o da Activity. Entao guarde assim: onCreateView combina com montagem da interface e vinculacao de eventos da tela. Isso faz o gabarito A ficar correto com bastante naturalidade.