Android ViewPager+Fragment多层嵌套(使用问题处理)

之前写了Android ViewPager+Fragment(使用问题处理),封装了一个BaseFragment,对于简单使用ViewPager+Fragment而言,是没有问题的。

不过,ViewPager包含多个fragment,而且fragment使用viewpager再次包含fragment,最顶层viewpager切换fragment,fragment内ViewPager中fragment无法检测是否显示或隐藏(setUserVisibleHint(boolean isVisibleToUser)、onHiddenChanged(boolean hidden)、onResume()和onPause()不执行)

解决方法:修改BaseFragment,给onResumeVisible()添加个标识,用于判断是onResume()还是setUserVisibleHint()导致执行onResumeVisible()方法;onPauseInVisible()同理。

在顶层Fragment重载onResumeVisible(tag),onPauseInVisible(tag),根据tag过滤掉activity显示或隐藏导致fragment执行onResume()或onPause(), 再让当前显示的fragment执行onResumeVisible(tag)或onPauseInVisible(tag)方法

你可能感兴趣的:(Android)