是否可以将 ViewPager 配置为仅在呈现屏幕片段后加载屏幕外片段?



我目前有很多逻辑是显示我个人片段所必需的。渲染每个单独的片段可能需要 300 毫秒。 ViewPager 当前加载屏幕上可见的片段和两个相邻的片段,然后再在 UI 中呈现任何内容。 我希望它首先渲染用户可见的片段,并仅在用户获得片段后处理其他片段。有没有办法获得我想要的行为?

在你的FragmentStatePagerAdapter类中试试这个

override fun getItemPosition(`object`: Any): Int {    
PagerAdapter.POSITION_NONE    
}

我不相信你会在这里看到很大的性能提升,除非你在其他片段中做一些繁重的事情。但是,在加载完第一个片段正在加载的任何内容后,您始终可以在屏幕外调整允许的屏幕外。

mViewPager.setOffscreenPageLimit(0)

然后在完成加载后,调整为要在内存中保留的数量,以便更好地用户滚动。

mViewPager.setOffscreenPageLimit(2)

这应该完成您请求的行为。

最新更新