Android中如何判断Fragment是否对用户可见

Fragment 在 Activity、ViewPager 中都会使用到,不同场景判断方法略有不同。 1,Activity 中的 Fragment 这种情况是最简单的。Activity中Fragment的生命周期是和Activity的生命周期一致的,当打开另外一个Activity的时候,只要监听Fragment的onResume和onPause方法就能够判断其显隐(如果Activity需要从一个Fragment切换到另外一个Frament,参考方法3) @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); } 2,ViewPager 中的 Fragment ViewPager中Fragment左右切换时,是不会调用onResume()和onPause()方法的。这两个方法是跟随Activity的生命周期的,这个时候我们可以在 Fragment 中重写 setUserVisibleHint(boolean isVisibleToUser) 方法来监听Fragment是否可见。 @Override public voidsetUserVisibleHint(booleanisVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(isVisibleToUser){ //可见 }else{ //不可见 } } 3,使用show()和hide()方法来显示隐藏Fragment 当在一个 Activity 中从一个 Fragment 切换成另外一个 Fragment,上面两种方法会失效,此时我们可以通过监听 onHiddenChanged(boolean hidden) 方法来判断是否对用户可见。 @Override public void  onHiddenChanged(booleanhidden) { super.onHiddenChanged(hidden); if(hidden){ //不可见 }else{ //可见 } }
我的笔记
你可能想看的