判断Fragment是否可见,填坑

首先说明,Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,所以Fragment的onResume和onPause的使用基本很少,于是,Fragment是否可见就不能这样去判断了。
网上很多关于使用setUserVisibleHint的解决方案,下面给个链接:
http://blog.csdn.net/jiangwei0910410003/article/details/17199219
作者的标题就很清楚的说明了,该方法只适用于ViewPager中的Fragment。
判断Fragment是否可见,填坑_第1张图片
从上图可以看出原因,setUserVisibleHint只在FragmentPagerAdapter和FragmentStatePagerAdapter中调用,也就是说,对于非FragmentPager中的Fragment,该方法是不会被调用的。

例如:由于滑动冲突导致不能滑动切换Fragment不能使用ViewPager,需要用下面的方式切换fragment
判断Fragment是否可见,填坑_第2张图片
如此,setUserVisibleHint就没用了。注意,是hide,因为hide不会销毁fragment,从而不会触发fragment的生命周期变化。
这种情况下,我目前是不知道有其他api可以判断fragment是否可见。只能自己判断,然后标记了。


既然在这种情况下setUserVisibleHint不会被调用,我们就自己掉,免去自定义接口的麻烦。也就是当hide的时候,自己去调用

fromFragment.setUserVisibleHint(false); 
toFragment.setUserVisibleHint(true);

我写的CSDN博客客户端介绍:http://blog.csdn.net/brian512/article/details/43168141

点击查看应用详情

你可能感兴趣的:(Android小知识,解决问题)