[英]Overiding onResume method in android not working in every fragment
我正在创建具有3个片段的android应用,每次返回片段时我都希望刷新数据。 因此,我在每个片段中重写onResume()
方法,并将系统输出打印添加到onresume,以检查其是否正常工作。
但是,当我导航到第二个片段时,它显示了片段3 onresume的添加系统输出。 当我转到片段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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.