Android-viewpager片段

Android-viewpager片段,android,Android,在不粘贴任何代码的情况下,我有一个活动,它显示了三个片段,使用viewpager在它们之间滑动 创建活动时,将显示选项卡1。。如果我选择第二个选项卡并返回第一个选项卡,则一切正常。但是如果我选择第三个选项卡,然后再次选择第一个选项卡,onResume方法将在第一个选项卡内调用,并导致一些不希望的结果。。。为什么只有在来自第三个选项卡而不是第二个选项卡时才会调用onResume?这就像是当你刷到标签三时,标签一被杀死,但是如果你只是刷到标签二,标签一就不会被杀死。没有看到代码,我只能猜测,但当您使

在不粘贴任何代码的情况下,我有一个活动,它显示了三个片段,使用viewpager在它们之间滑动


创建活动时,将显示选项卡1。。如果我选择第二个选项卡并返回第一个选项卡,则一切正常。但是如果我选择第三个选项卡,然后再次选择第一个选项卡,onResume方法将在第一个选项卡内调用,并导致一些不希望的结果。。。为什么只有在来自第三个选项卡而不是第二个选项卡时才会调用onResume?这就像是当你刷到标签三时,标签一被杀死,但是如果你只是刷到标签二,标签一就不会被杀死。

没有看到代码,我只能猜测,但当您使用tab时,您将使用
FragmentPagerAdapter
FragmentPagerStateAdapter
这将保留对保持活动状态的片段的引用。我猜您使用的是
FragmentPagerStateAdapter
,它只会使某些片段保持活动状态,并在其他片段离开视图时销毁它们。因此,当您在第三个片段上时,第一个片段将被销毁,它将被重新创建,因此当您返回并访问它时,将调用onResume。当您在第二个选项卡上时,片段不会被销毁,因此当您访问它时,它不需要调用onResume。片段保持左侧一个片段和右侧一个片段“活动”,即使它们不在视图中。所以当你在1上时,2是活的。当你在2时,1和3是活着的,当你在3时,2是活着的。我希望这有帮助

为BlackHat的答案添加更多内容

如果尚未使用FragmentStatePagerAdapter,则应使用FragmentStatePagerAdapter,而不是FragmentPagerAdapter


此外,还应将YRU view pager的属性设置为在空闲状态下应保留在视图层次结构中当前页面任一侧的页面数

相关:基本上,默认情况下,ViewPager将保持当前片段以及两侧的一个片段处于活动状态(如果当前片段是两端的片段之一,则只有其旁边的一个片段处于活动状态)。有关在片段可见时更新每个片段的最佳方式,请参见此处的答案:感谢blackhat和manos。。赛廷最终成功了。这让我很烦恼,我很高兴看到事情按计划进行