最近发现使用ViewPager时配合fragment无法回调onHiddenChanged,实际使用fragmentPageAdapter时会自动加载fragment,此时onHiddenChanged就显得很鸡肋了
1.配合pagerAdapter使用时
注意:setUserVisibleHint调用时机早于onCreateView,首次进入更新UI会产生NullPointException
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
isFirst = true;
// TODO 检测加载的页面是否已经面向使用者
}
}
2.常规的add/hide/replace使用
- 通过显示隐藏不会执行fragment生命周期,
boolean visibleHint = getUserVisibleHint();//不走懒加载
通过onHiddenChanged可以获取fragment是否隐藏
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(mHidden);
mHidden = hidden;
}