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 Fragmentjest nazywany po Activity„sonAttachFragment() Ale zanim to Fragment” s onCreateView().
W tej metodzie możesz przypisywać zmienne, uzyskiwać Intentdodatki 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 ActivityjestonCreate() 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ć Viewzmienne i wykonać dowolną graficzną inicjalizację . Oczekuje się, że zwrócisz Viewz 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, Fragmentale 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()ViewonCreateView()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