AndroidxLazyLoad icon indicating copy to clipboard operation
AndroidxLazyLoad copied to clipboard

发现个bug

Open sceneren opened this issue 3 years ago • 4 comments

第一个demo、第二个demo和ViewPager2的demo, 懒加载都会出现问题了,第一次进入的时候会调用lazyInit,然后切换到第三个fragment的时候 第一个fragment被销毁了,切换回来的时候会重建fragment,然后执行一次全部的生命周期

sceneren avatar May 27 '21 01:05 sceneren

你好,我测试了一下Demo1的例子。走了一下你说的流程,具体流程如下所示

步骤1:直接进入Demo1,界面展示为Fragment1 1

步骤2:直接切到Fragment3 2

步骤3:切回到Fragment1 3

因为Fragment view 被销毁了,所以会走相应生命周期。这个有什么问题吗?

AndyJennifer avatar Jun 03 '21 13:06 AndyJennifer

这对于Android Fragment的生命周期来说是没有问题的,但是正常来说对于懒加载的话,同一层级的fragment的话就不想出现初始化的

sceneren avatar Jun 04 '21 01:06 sceneren

这对于Android Fragment的生命周期来说是没有问题的,但是正常来说对于懒加载的话,同一层级的fragment的话就不想出现初始化的

如果你想同层级的fragment不重走生命周期方法,那么使用Viewpager 是没有办法控制的,因为它总会销毁Fragment实例或view,但是如果你采用show +hide 的方式就不会重走生命周期方法。什么时候使用ViewPager,什么时候时候使用Show +hide。这个要看具体的使用场景了。当然该项目中也有使用Show +Hide的使用例子,你如果有兴趣可以看看。

AndyJennifer avatar Jun 06 '21 16:06 AndyJennifer

这对于Android Fragment的生命周期来说是没有问题的,但是正常来说对于懒加载的话,同一层级的fragment的话就不想出现初始化的

viewPager.offscreenPageLimit = 3 就可以了

mxruan avatar Jun 22 '21 09:06 mxruan