Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

viewpager 预加载会把所有 fragment 里的 onLazyInitView 都调用 #1235

Open
gzpaiwxc opened this issue Jan 14, 2020 · 6 comments
Open

Comments

@gzpaiwxc
Copy link

gzpaiwxc commented Jan 14, 2020

  • Library version fragmentationX 1.0.1

  • Logs
    onLazyInitView
    onSupportInVisible
    onSupportVisibleInVisible

  • Screenshots

我用的 Fragment 嵌套 Viewpager , 里面放 4 个 Fragment , setOffscreenPageLimit() 设为 3 , 每次进来都会把 4 个 fragment 预加载了 , 每个页面的 onLazyInitView 都在预加载的时候就调用了 , 这样岂不是都没有懒加载的效果了 ? onLazyInitView 懒加载不是在 fragment 可见的时候才调用的吗 ?
还有就是 onSupportVisible() 也是一样在预加载的时候 4 个 fragment 页面调用了 , 然后第一次切换页面时 , 只会调用上一个显示的 fragment 的 onSupportInVisible 方法 , 不调用要显示的 fragment 的 onSupportVisible 方法 , 第二次切换页面的时候才会调用 要显示的 fragment 的 onSupportVisible 和上一个显示的 fragment 的 onSupportInVisible . 困扰好久 , 请求路过的大神帮帮忙

@JantHsueh
Copy link

你好,我查看代码并通过demo验证了,并没有这个问题,你是否方便提供简单的demo,复现一下这个问题,我会尽快帮你处理

@gzpaiwxc
Copy link
Author

@JantHsueh 我目前也找不到什么原因 , 项目用了 MVVM 的架构 , 我测了作者的 demo 是没问题的 , 我的项目是用 kotlin 写的 , 后面把有问题的代码写回 Java 又没问题了 , 我以为是框架和 kotlin 不兼容 , 后来我把作者的 demo 也用 kotlin 写测了一遍 , 还是没问题 。 最关键的一点是我的项目最大层有 3 个 tab , 首页的 tab 里面 viewpager+fragment 完全没问题 , 但是第 2 个 tab , viewpager+fragment 和首页的 tab 里的 viewpager+fragment 的写法完全一样 , 但用 kotlin 写就是有问题 , Java 写就是没问题,我真的非常懵逼 。用的是 demo 里知乎的那种写法。

@JantHsueh
Copy link

@gzpaiwxc 你方便提供一个该问题的demo吗,我看下是什么问题

@Onionsss
Copy link

我也是这个问题 只不过是viewpager2

@wayneleo
Copy link

用kotlin写,发现同样的问题

@zhuzhutai
Copy link

androidx.fragment:fragment-ktx:1.2.5
去掉这个就行了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants