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 Intent
extras 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 Activity
arquivo 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 View
variáveis e fazer qualquer inicialização gráfica . Espera-se que você retorne a View
deste método, e esta é a visualização principal da interface do usuário, mas se você Fragment
nã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 Fragment
mas 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 View
variá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