在Fragment中检测ViewPager选项卡的更改

12 浏览
0 Comments

在Fragment中检测ViewPager选项卡的更改

我有一个带有多个片段的ViewPager。在一个片段中,我播放音频。当我滑动到另一个片段时,我希望停止音频播放。如何检测另一个片段在ViewPager中现在可见?

我尝试了重写onStop和onHiddenChanged方法。但没有成功。肯定有一种“你不再活动了”的方法可以重写。不是吗?

0
0 Comments

问题出现的原因是ViewPager在切换tab时会调用setUserVisibleHint方法,但有些情况下该方法不会被调用。解决方法是重写setUserVisibleHint方法,并在其中添加逻辑。另外,如果使用的是FragmentPagerAdapter而不是FragmentStatePagerAdapter,setUserVisibleHint方法会被调用。在低版本的API中,可以使用Android Support Library来使用Fragment的setUserVisibleHint方法。此外,还可以在onResume和onOrientationChanged方法中处理相关逻辑,并使用getUserVisibleHint方法来获取当前fragment的可见性状态。值得注意的是,有些情况下setUserVisibleHint方法可能会自动被调用,所以可能需要考虑其他替代方案。

0