Mam 4 (powiedzmy 1,2,3 & 4) fragmentów. I w dowolnym czasie każdy z nich będzie widoczny dla Użytkownika. W drugim fragmencie chcę coś zrobić, gdy użytkownik się na niego pojawi. Teraz, gdy użytkownik nawigował do trzeciego fragmentu &, kliknij przycisk Wstecz, chcę uruchomić jakiś kod. Mój problem polega na tym, że onResume
nie jest wywoływany, gdy użytkownik kliknie przycisk powrotu. & przychodzi do drugiego fragmentu.Fragment onResume nie nazywa się
8
A
Odpowiedz
4
Niedawno natknąłem się na ten sam problem, wiem, że jest za późno, ale na wszelki wypadek ktoś inny szuka tego, oto moja odpowiedź:
Dzięki @fasteque do zawężenia moje poszukiwania.
Fragmenty onResume()
lub onPause()
będą wywoływane tylko po wywołaniu działań onResume()
lub onPause()
. Są ściśle powiązane z Działalnością.
Ale jeśli nadal chcesz słuchać zmian w swojej działalności jak fragment, który jest na górze, a wyzwalać zdarzenia odpowiednio, może chcesz przyjrzeć się FragmentManager.OnBackStackChangedListener
nadzieję, że to pomaga :)
1
I Miałem ten sam problem. Jeśli chcesz przełączyć się z trzeciego fragmentu do drugiego fragmentu (tylnym przyciskiem lub w inny sposób), możesz wywołać drugi fragment w opcji "Wstrzymaj trzeci fragment".
@Override
public void onPause() {
super.onPause();
Fragment2 fragment2= (Fragment2) getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment2);
if (fragment2!= null) {
//you can call any function from fragment2
fragment2.SomeFunctions();
}
}
spróbuje użyć 'onAttach()' metoda, nie 'onResume()' – Procurares
Już próbowałem .... Właściwie OnAttch() jest nazywany po prostu raz, kiedy dołączyć go od aktywności fragmentu. – hemu
Jak przełączasz się między fragmentami? Proszę podać przykładowy kod. – antonyt