我的应用程序中有两个选项卡,其中有两个RecyclerView
,当我单击第一个选项卡中的一个项目时,它会将一个项目添加到第二个选项卡(下载管理器的下载链接),但用户无法看到更改,直到片段onDestroy
和onCreate
(旋转、退出、转到第三个选项卡)我认为这是因为viewPager
中的片段lifeCycle
保留了上一个选项卡。
我怎么能强迫Android在标签更改时销毁碎片呢?我甚至尝试了带有接口的setOnPageChangeListener
,但它对我不起作用,也许是因为getItem
只在碎片创建时运行?
2条答案
按热度按时间wgxvkvu91#
而不是在onCreate中填充列表(),您应该在onResume中执行()。遵循Android Activity生命周期,一旦Activity/片段处于非活动状态,onPause调用()-一旦您返回到它,在恢复时()。因此如果您在另一个选项卡中并切换到第二个选项卡,onResume()将被调用,您可以从那里创建列表-无需破坏视图。
您可以在这里阅读更多关于活动生命周期的信息:https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
5uzkadbs2#
覆盖乐趣打开暂停(){
在你的每个片段中添加这个代码