【问题标题】:Fragments inside view pager doesn't load the data after the first time视图寻呼机中的片段在第一次后不加载数据
【发布时间】:2019-02-16 16:41:46
【问题描述】:

当我第一次打开 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;
}

}

【问题讨论】:

  • ViewPager 并非旨在重新加载您的数据。当您移至下一页时,它不会破坏您的视图。

标签: java android android-fragments android-viewpager


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多