参考:[Android]Fragment进行show和hide时候刷新数据
项目用到Fragment管理不同的列表信息,在切换Fragment的时候需要重新刷新数据,然而使用show()和hide()切换Fragment的时候,Fragment并不会执行onResume()和onPause()的生命周期方法,而是执行了onHiddenChanged()方法。
onHideentChanged方法的源码:
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) { // 不在最前端显示 相当于调用了onPause();
}else{ // 在最前端显示 相当于调用了onResume();
}
}
需要注意,Fragment中调用findViewById()需要使用onCreateView()中获取的到的View而不能用getActivity()
使用示例:
@Override
public void onResume() {//重建时调用
super.onResume();
loadData();
}
@Override
public void onHiddenChanged(boolean hidden) {//切换时调用
super.onHiddenChanged(hidden);
if(!hidden){
loadData();
}
}