Java 滑块中的刷新片段

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进

我在ViewPager中有3个片段。当我从片段1滑动到3时,片段3正在刷新数据(重新执行所有方法),但当我从1滑动到2或从2滑动到3时,下一个片段不会刷新数据

你能帮我弄明白为什么吗?我怎么能每次都提神呢


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
    }
}
这个答案来自于