视图寻呼机内的碎片不会在第一次后加载数据

问题描述 投票:2回答:1

我有视图寻呼机包含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;
}

}
java android android-fragments android-viewpager
1个回答
0
投票

我通过覆盖setUserVisibleHint方法解决了这个问题,并重新下载其中的数据。每次片段的可见性发生变化时,都会调用此方法。这是代码:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        presenter.getUserData();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.