Quais são as diferenças entre onCreate(), onCreateView()e onActivityCreated()nos fragmentos e para que cada um deles seria usado?
Quais são as diferenças entre onCreate(), onCreateView()e onActivityCreated()nos fragmentos e para que cada um deles seria usado?
Respostas:
onCreate ():
O onCreate()método em um Fragmenté chamado após o Activity'sonAttachFragment() mas antes disso Fragment' s onCreateView().
Nesse método, você pode atribuir variáveis, obter Intentextras e qualquer outra coisa que não envolva a hierarquia de exibição (ou seja, inicializações não gráficas). Isso ocorre porque esse método pode ser chamado quando o Activityarquivo onCreate()não estiver concluído e, portanto, tentar acessar a hierarquia Exibir aqui pode resultar em uma falha.
onCreateView ():
Depois que o onCreate()é chamado (no Fragment), o Fragment's onCreateView()é chamado. Você pode atribuir suas Viewvariáveis e fazer qualquer inicialização gráfica . Espera-se que você retorne a Viewdeste método, e esta é a visualização principal da interface do usuário, mas se você Fragmentnão usar layouts ou gráficos, poderá retornar null(isso acontece por padrão se você não substituir).
onActivityCreated ():
Como o nome indica, este é chamado após o Activity's onCreate()completou . É chamado depois onCreateView()e é usado principalmente para inicializações finais (por exemplo, modificar elementos da interface do usuário).
Para resumir ...
todos eles são chamados no Fragmentmas são chamados em momentos diferentes.
O onCreate()primeiro é chamado, por realizar inicializações não gráficas. Em seguida, você pode atribuir e declarar quaisquer Viewvariáveis nas quais deseja usar onCreateView(). Posteriormente, use onActivityCreated()para fazer as inicializações finais que desejar, depois que tudo estiver concluído.
Se você deseja visualizar a documentação oficial do Android, ela pode ser encontrada aqui:
-
-
-onCreate()onCreateView()onActivityCreated()
Também há perguntas / respostas um pouco diferentes, mas menos desenvolvidas, aqui no Stack Overflow:
onCreateView.
Para quem procura uma resposta concisa e pictórica:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
E,
onActivityCreated()agora está obsoleto como fragmentos versão 1.3.0-alpha02
O método onActivityCreated () agora está obsoleto. O código que toca na visualização do fragmento deve ser feito em onViewCreated () (que é chamado imediatamente antes de onActivityCreated ()) e outro código de inicialização deve estar em onCreate (). Para receber um retorno de chamada especificamente quando o onCreate () da atividade estiver concluído, um LifeCycleObserver deve ser registrado no ciclo de vida da atividade em onAttach () e removido assim que o retorno de chamada onCreate () for recebido.
Informações detalhadas podem ser encontradas aqui