强制android在标签更改时销毁碎片?(viewpager的生命周期)

f0ofjuux  于 2023-01-07  发布在  Android
关注(0)|答案(2)|浏览(116)

我的应用程序中有两个选项卡,其中有两个RecyclerView,当我单击第一个选项卡中的一个项目时,它会将一个项目添加到第二个选项卡(下载管理器的下载链接),但用户无法看到更改,直到片段onDestroyonCreate(旋转、退出、转到第三个选项卡)我认为这是因为viewPager中的片段lifeCycle保留了上一个选项卡。
我怎么能强迫Android在标签更改时销毁碎片呢?我甚至尝试了带有接口的setOnPageChangeListener,但它对我不起作用,也许是因为getItem只在碎片创建时运行?

wgxvkvu9

wgxvkvu91#

而不是在onCreate中填充列表(),您应该在onResume中执行()。遵循Android Activity生命周期,一旦Activity/片段处于非活动状态,onPause调用()-一旦您返回到它,在恢复时()。因此如果您在另一个选项卡中并切换到第二个选项卡,onResume()将被调用,您可以从那里创建列表-无需破坏视图。
您可以在这里阅读更多关于活动生命周期的信息:https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

5uzkadbs

5uzkadbs2#

覆盖乐趣打开暂停(){

list.clear()
    super.onPause()
}

在你的每个片段中添加这个代码

相关问题