Android - viewpager fragment

标签 android

没有我粘贴任何代码,我有一个 Activity 显示三个 fragment ,使用 viewpager 在它们之间滑动。

创建 Activity 时,将显示第一个选项卡。如果我选​​择第二个选项卡并返回到第一个选项卡,一切都很好。但是,如果我选择第三个选项卡,然后再次选择第一个选项卡,则会在第一个选项卡中调用 onResume 方法,这会导致一些不良结果……为什么 onResume 仅在来自第三个选项卡而不是第二个选项卡时被调用?这就像当您滑动到标签三时标签一被杀死,但如果您只是滑动到标签二则标签一不会被杀死..

最佳答案

在没有看到代码的情况下,我只能猜测,但是当您使用选项卡时,您将使用 FragmentPagerAdapterFragmentPagerStateAdapter 这会保留对保留的 fragment 的引用活。我猜您正在使用 FragmentPagerStateAdapter,它只会使某些 fragment 保持 Activity 状态,并在其他 fragment 离开 View 时销毁它们。因此,当您在第 3 个 fragment 上时,第一个 fragment 正在被销毁,它会被重新创建,因此当您返回并访问它时会调用 onResume。当您在第二个选项卡上时, fragment 不会被销毁,因此当您访问它时,它不需要调用 onResume。 fragment 使左边的一个 fragment 和右边的一个 fragment 保持“活着”,即使它们不在视野中也是如此。所以当你在 1 时,2 还活着。当你在 2 时,1 和 3 还活着,当你在 3 时,2 还活着。我希望这有帮助。

关于Android - viewpager fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186807/

相关文章:

android - 如何在运行后端代码时更改 android studio 中的默认端口号?

java - 包构建不存在 "Build.VERSION.SDK_INT"

java - AsyncTask 不工作 - 无法实例化类型错误

android - GCM 发件人 ID 不匹配

android - 从 Android 应用程序运行 Google Apps 脚本?

java - RxJava 而不是 AsyncTask?

java - 解决 UI 线程延迟问题

android - 通知声音打断音乐

Android:如何在 Nexus One 上调试应用程序

android - 无法合并 Dex - Android Studio 3