Viewpager 不清除片段
Posted
技术标签:
【中文标题】Viewpager 不清除片段【英文标题】:Viewpager not clearing fragments 【发布时间】:2021-10-31 04:33:05 【问题描述】:我在使用嵌套查看器时遇到了这个问题。
我有两个级别的浏览器。我们称它为 levelOneViewPager,其中我还有一个 viewpager,我们称它为 levelTwoViewPager。
Activity为levelOneViewPager加载数据并设置适配器。
levelOneViewPager 在 onViewCreated 中为 levelTwoViewPager 加载数据并设置适配器。
levelOneViewPager 首次加载数据时一切正常。
现在问题来了。 levelOneViewPager 的第一页已加载,我移至第 4 页并返回第一页,应用程序崩溃。 原因,现在 levelOneViewPager 的第一页被重新创建并正在加载数据,甚至在它设置适配器之前,levelTwoViewPager 的片段已创建并正在访问父片段中的一些数据,这些数据尚不可用。
这是怎么回事?我尚未将适配器设置为 levelTwoViewPager,但已为其创建了片段。
(我尝试同时使用 FragmentPagerAdapter 和 FragmentStatePagerAdapter,这是相同的行为)
【问题讨论】:
【参考方案1】:为父viewpager添加offscreenpage限制,这应该可以解决问题
【讨论】:
这将如何解决问题?这没有意义。反正我试过了,还是一样。 如果您将 ser 限制为零,它将每次都重新创建父片段,这意味着子片段也将被再次创建 你不能将 offscreenpagelimit 设置为 0,默认情况下它总是 1。任何低于 1 的东西你都尝试设置它丢弃。以上是关于Viewpager 不清除片段的主要内容,如果未能解决你的问题,请参考以下文章