Java 滑块中的刷新片段
我在ViewPager中有3个片段。当我从片段1滑动到3时,片段3正在刷新数据(重新执行所有方法),但当我从1滑动到2或从2滑动到3时,下一个片段不会刷新数据 你能帮我弄明白为什么吗?我怎么能每次都提神呢Java 滑块中的刷新片段,java,android,android-fragments,Java,Android,Android Fragments,我在ViewPager中有3个片段。当我从片段1滑动到3时,片段3正在刷新数据(重新执行所有方法),但当我从1滑动到2或从2滑动到3时,下一个片段不会刷新数据 你能帮我弄明白为什么吗?我怎么能每次都提神呢 My activity扩展基类FragmentActivity和fragment扩展基类fragment。首先在片段结构中,android先前加载左侧和右侧片段。例如,在第二个片段中,1和2已经安装。这是有功能的 你的第二个问题:这是可能的,但方式很微妙。我通常使用NotifyAdapter进
My activity扩展基类FragmentActivity和fragment扩展基类fragment。首先在片段结构中,android先前加载左侧和右侧片段。例如,在第二个片段中,1和2已经安装。这是有功能的
你的第二个问题:这是可能的,但方式很微妙。我通常使用NotifyAdapter进行此操作。每次刷卡后,可以使用
notifyDataSetChanged()代码>或将数据重新加载到适配器 首先在片段结构中,android先前加载左侧和右侧片段。例如,在第二个片段中,1和2已经安装。这是有功能的
你的第二个问题:这是可能的,但方式很微妙。我通常使用NotifyAdapter进行此操作。每次刷卡后,可以使用notifyDataSetChanged()代码>或将数据重新加载到适配器 默认情况下,ViewPager使用setOffscreenPageLimit(1)
,这意味着它会“缓存”左侧的一个视图和右侧的另一个视图,因此如果您在第二个片段上,并转到第1个或第3个片段,它将不会重新加载。如果返回到第1个而不是第2个,则第3个将被重新加载
setOffscreenPageLimit(0)
产生警告(最小值必须为1)
一个解决方案是在片段中使用setUserVisibleHint
来检测它们何时变得可见,并在那里处理加载/刷新数据
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// load data here
}else{
// fragment is no longer visible
}
}
此答案取自。默认情况下,ViewPager使用setOffscreenPageLimit(1)
,这意味着它将“缓存”左侧的一个视图和右侧的另一个视图,因此如果您位于第二个片段上,并转到第1个或第3个,它将不会重新加载。如果返回到第1个而不是第2个,则第3个将被重新加载
setOffscreenPageLimit(0)
产生警告(最小值必须为1)
一个解决方案是在片段中使用setUserVisibleHint
来检测它们何时变得可见,并在那里处理加载/刷新数据
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// load data here
}else{
// fragment is no longer visible
}
}
这个答案来自于