Różnice i zastosowania OnCreate(), onCreateView() i onActivityCreated() we fragmentach
Jakie są różnice między onCreate()
, onCreateView()
, i onActivityCreated()
we fragmentach i do czego by się przydały?
2 answers
OnCreate():
Metoda onCreate()
W Fragment
jest wywoływana po Activity
's onAttachFragment()
ale wcześniej Fragment
' s onCreateView()
.
W tej metodzie można przypisać zmienne, uzyskać Intent
dodatki i Wszystko inne, co nie wiąże się z hierarchią widoku (tj. inicjalizacje niegrafowe). Jest tak, ponieważ ta metoda może być wywołana, gdy Activity
' S onCreate()
nie jest zakończona, a więc próba uzyskania dostępu do hierarchii widoków może spowodować crash.
OnCreateView():
Po wywołaniu onCreate()
(w Fragment
), wywołane jest Fragment
's onCreateView()
. Możesz przypisać swoje zmienne View
i wykonać dowolne graficzne inicjalizacje. Oczekuje się, że zwrócisz View
z tej metody i jest to główny widok interfejsu użytkownika, ale jeśli twoja Fragment
nie używa żadnych układów ani Grafiki, możesz zwrócić null
(dzieje się domyślnie, jeśli nie nadpisujesz).
OnActivityCreated():
Jako nazwa Stany, jest to wywołane po zakończeniu Activity
'S onCreate()
. Jest wywoływany po onCreateView()
i jest używany głównie do końcowych inicjalizacji (na przykład modyfikowania elementów UI).
Podsumowując...
... wszystkie one są nazywane w Fragment
, ale są nazywane w różnym czasie.onCreate()
jest wywoływany jako pierwszy, do wykonywania dowolnych niegraficznych inicjalizacji. Następnie możesz przypisać i zadeklarować dowolne zmienne View
, których chcesz użyć w onCreateView()
. Następnie użyj onActivityCreated()
, aby wykonać dowolny ostateczne inicjalizacje, które chcesz zrobić, gdy wszystko się skończy.
jeśli chcesz przejrzeć oficjalną dokumentację Androida, można ją znaleźć tutaj: [39]}
- onCreate()
- onCreateView()
- onActivityCreated()
istnieje również kilka nieco innych, ale mniej rozwiniętych pytań/odpowiedzi tutaj na Stack Overflow: {35]}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:58
Dla każdego, kto szuka zwięzłej, obrazkowej odpowiedzi:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
I,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-16 06:39:07