Фрагменты ViewPager кажутся отсоединенными?

У меня есть 3 фрагмента в пейджере (с использованием библиотеки совместимости), первый отображается при загрузке приложения. 2-я и 3-я страницы немного загружают процессор, поэтому я хотел бы загружать их содержимое только тогда, когда пользователь сначала прокручивает их.

для этого я реализовал ViewPager.OnPageChangeListener и переопределил onPageSelected для вызова onResume во фрагменте.

public void onPageSelected(int position) {
    getItem(viewPager.getCurrentItem()).onResume();
}

во Фрагментах onResume следующее:

@Override
public void onResume() {
    super.onResume();

    if ((MainActivity) getActivity() != null && ((MainActivity) getActivity()).pager != null && ((MainActivity) getActivity()).pager.getCurrentItem() == 1) {
        doCpuIntensiveLoading();
    }
}

чтобы предотвратить его загрузку при создании и невидимости, но для загрузки, когда пейджер getCurrentItem() возвращает идентификатор фрагмента.

но! когда я прокручиваю страницу, getActivity() возвращает null, хотя меню фрагмента заполнено, и вызов загрузки из меню работает.

пожалуйста, дайте мне знать, если вам нужна дополнительная информация.


person materemias    schedule 21.12.2011    source источник