Фрагменты в пейджере вида не загружают данные после первого раза - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть пейджер просмотра, содержащий 3 фрагмента, когда я открываю один из 3 фрагментов в первый раз, когда он загружает данные внутри него, но когда я перехожу к другому фрагменту и открываю старый фрагмент, данные не загружаются.

это код viewpagerAdapter:

public class ViewPagerAdapter extends FragmentPagerAdapter {
Context context;

public ViewPagerAdapter(FragmentManager fragmentManager, Context context) {
    super(fragmentManager);
    this.context = context;
}

/**
 * @return the number of pages to display
 */
@Override
public int getCount() {
    return 3;
}

// BEGIN_INCLUDE (pageradapter_getpagetitle)

/**
 * Return the title of the item at {@code position}. This is important as what this method
 * <p>
 * Here we construct one using the position value, but for real application the title should
 * refer to the item's contents.
 */
@Override
public CharSequence getPageTitle(int position) {
    String title = "";
    switch (position) {
        case 0:
            title = "تعلم";
            break;
        case 1:
            title = "الصفحة الرئيسية";
            break;
        case 2:
            title = "التحديات";
            break;
    }
    return title;
}
// END_INCLUDE (pageradapter_getpagetitle)

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new ChallengersFragment();
        case 1:
            return new HomeFragment();
        case 2:
            return new ChallengesFragment();
    }

    return null;
}

}

1 Ответ

0 голосов
/ 16 февраля 2019

Я решил проблему с помощью переопределения метода setUserVisibleHint и повторной загрузки данных в нем. Этот метод будет вызываться при каждом изменении видимости фрагмента.это код:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        presenter.getUserData();
    }
}
...