我在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正在工作。
如果您需要更多详细信息,请与我们联系。