我正在创建具有3个片段的Android应用程序,并且每次回到片段时都需要刷新数据。因此,我在每个片段中覆盖onResume()
方法,然后将系统打印到resume中以检查是否正常工作。
但是,当我导航到第二片时,它显示了添加系统的添加系统打印3 on Resume。当我进入片段3时,它没有显示任何添加系统打印。但是当我再次回到第二次时,它显示了添加片段1的系统打印。
请帮助我解决此问题。
看来您在ViewPager
中使用FragmentStatePagerAdapter
。正是适配器的预期行为仅创建了相邻的片段。如果您不希望此行为使用FragmentPagerAdapter
。但是请注意所有片段所占用的内存。
使您的片段实现接口:
public interface Listener {
void resume()
}
使您的活动实现OnPageChangeListener
:
viewPager.addOnPageChangeListener(this);
然后执行以下操作:
@Override
public void onPageSelected(int position) {
((Listener) mAdapter.getItem(position)).resume();
}