Jakie są różnice między onCreate()
,onCreateView()
i onActivityCreated()
we fragmentach i co one być stosowane dla każdego?
Jakie są różnice między onCreate()
,onCreateView()
i onActivityCreated()
we fragmentach i co one być stosowane dla każdego?
Odpowiedzi:
onCreate ():
onCreate()
Metodę w Fragment
jest nazywany po Activity
„sonAttachFragment()
Ale zanim to Fragment
” s onCreateView()
.
W tej metodzie możesz przypisywać zmienne, uzyskiwać Intent
dodatki i wszystko inne, co nie wiąże się z hierarchią widoku (tj. Nie graficzne inicjalizacje). Wynika to z faktu, że tę metodę można wywołać, gdy Activity
jestonCreate()
nie jest zakończona, a więc próbuje uzyskać dostęp do widoku Hierarchia tutaj może doprowadzić do katastrofy.
onCreateView ():
Po onCreate()
nazywa (w Fragment
), przy czym Fragment
„a onCreateView()
jest tzw. Możesz przypisać View
zmienne i wykonać dowolną graficzną inicjalizację . Oczekuje się, że zwrócisz View
z tej metody, a to jest główny widok interfejsu użytkownika, ale jeśli takFragment
nie używasz żadnych układów ani grafiki, możesz zwrócićnull
(domyślnie dzieje się, jeśli nie zastąpisz).
onActivityCreated ():
Jak nazwa wskazuje, jest to nazywane po Activity
„s onCreate()
zakończył . Jest wywoływany po onCreateView()
i jest używany głównie do końcowych inicjalizacji (na przykład do modyfikowania elementów interfejsu użytkownika).
Podsumowując ...
... wszyscy są wzywani, Fragment
ale są wywoływani w różnych momentach. Nazywa się pierwszy, za to żadnych Initialisations niegraficznych. Następnie możesz przypisać i zadeklarować dowolne zmienne, których chcesz użyć . Następnie użyj, aby wykonać końcowe inicjalizacje, które chcesz wykonać, gdy wszystko się zakończy.onCreate()
View
onCreateView()
onActivityCreated()
Jeśli chcesz zobaczyć oficjalną dokumentację Androida, znajdziesz ją tutaj:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Istnieją również nieco inne, ale mniej rozwinięte pytania / odpowiedzi na temat przepełnienia stosu:
onCreateView
.
Dla każdego, kto szuka zwięzłej, obrazowej odpowiedzi:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
I,
onActivityCreated()
jest teraz przestarzałe jako Fragmenty Wersja 1.3.0-alpha02
Metoda onActivityCreated () jest teraz przestarzała. Kod dotykający widoku fragmentu powinien zostać wykonany w onViewCreated () (który jest wywoływany bezpośrednio przed onActivityCreated ()), a inny kod inicjujący powinien być w onCreate (). Aby otrzymać wywołanie zwrotne w szczególności po zakończeniu działania onCreate () działania, LifeCycleObserver należy zarejestrować w cyklu życia działania w funkcji onAttach () i usunąć po otrzymaniu wywołania zwrotnego onCreate ().
Szczegółowe informacje można znaleźć tutaj