我目前有很多逻辑是显示我个人片段所必需的。渲染每个单独的片段可能需要 300 毫秒。 ViewPager 当前加载屏幕上可见的片段和两个相邻的片段,然后再在 UI 中呈现任何内容。 我希望它首先渲染用户可见的片段,并仅在用户获得片段后处理其他片段。有没有办法获得我想要的行为?
在你的FragmentStatePagerAdapter
类中试试这个
override fun getItemPosition(`object`: Any): Int {
PagerAdapter.POSITION_NONE
}
我不相信你会在这里看到很大的性能提升,除非你在其他片段中做一些繁重的事情。但是,在加载完第一个片段正在加载的任何内容后,您始终可以在屏幕外调整允许的屏幕外。
mViewPager.setOffscreenPageLimit(0)
然后在完成加载后,调整为要在内存中保留的数量,以便更好地用户滚动。
mViewPager.setOffscreenPageLimit(2)
这应该完成您请求的行为。