ViewPager的片段似乎打成了超脱?

时间:2011-12-21 20:56:05

标签: android android-fragments android-viewpager android-compatibility

我在viewpager中有3个片段(使用兼容性库),第一个片段在应用加载时显示。 第二页和第三页有点CPU密集,所以我想只在用户首先刷新它们时加载它们的内容。

为此我实现了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();
    }
}

防止它在实例化时被加载并且不可见,但是当pager的getCurrentItem()返回片段的id时加载。

但!当我滚动到页面时,getActivity()返回null,尽管填充了片段的菜单并且从菜单调用load正在工作。

如果您需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

好的,得到它:必须将片段保存在onSaveInstanceState中并在主要活动中恢复它,如在this post中读取