ViewPager
搭配Fragment
做懒加载,这个很常见。需要小心的是Fragment
在ViewPager
中的生命周期,这个不多说。
最近遇到一个坑,这个坑的关键点是
1 | ViewPager.setOffscreenPageLimit(); |
假设通过这个方法设置了一个值(比如2),然后在ViewPager
中滑动加载了2个Fragment
后,第三个Fragment
的加载会出现问题,具体表现是该调用的方法都有调用,但是就是数据加载出问题。
数据加载我是用了RxLifecycle绑定到FragmentEvent.DESTROY_VIEW
,初步怀疑是生命周期在作祟。
目前的解决方法是先将setOffscreenPageLimit
设置为和自己加入的Fragment
数量一致。比较好的解决方法是自定义ViewPager
实现懒加载。
评论