我已经意识到在Android中使用标签布局时,它总是加载触摸它的标签,即之前的标签和标签,因此当您翻页时它会被加载。
但是,我从服务器加载大量内容和图像,这会导致大量数据和内存使用,我经常得到OOM errors
,我使用Glide有效地显示图像。
基本上我需要知道3件事:
clear/recycle/delete
旧选项卡答案 0 :(得分:9)
默认情况下,它是viewpager.setOffscreenPageLimit(1),这意味着默认情况下,View pager将在当前选项卡的右侧和右侧选项卡上加载至少1个。它是这样做的,主要是因为当两个标签的某些区域可见时,你可以滑动viewpager。对于那些平滑过渡,需要预加载。您无法将其设置为viewpager.setOffscreenPageLimit(0)。 唯一的出路是使用此方法setUserVisibleHint 将此添加到您的片段
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// load data here
}else{
// fragment is no longer visible
}
}
仅当用户可以看到该特定选项卡时才会调用此方法,因此只有这样您才能调用所有的loadfing函数。希望它有所帮助。