java - 刷新 slider 中的 fragment

标签 java android android-fragments

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

你能帮我理解为什么吗?怎么才能每次都刷新呢?

我的 Activity 扩展了基类 FragmentActivity,而 fragment 扩展了基类 Fragment。

最佳答案

ViewPager 默认使用 setOffscreenPageLimit(1),这意味着它将一个 View “缓存”到左侧,另一个 View 缓存到右侧,因此,如果您位于第二个 fragment 并转到第一个或第三个 fragment ,它将不会重新加载。如果您返回第 1 个而不是第 2 个,则第 3 个将被重新加载。

setOffscreenPageLimit(0) 产生警告(最小值必须为 1)。

解决方案是在 fragment 中使用 setUserVisibleHint 来检测它们何时变得可见,并在那里处理加载/刷新数据。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        // load data here
    }else{
        // fragment is no longer visible
    }
}

此答案取自this SO answer .

关于java - 刷新 slider 中的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638831/

相关文章:

java - 您可以使用 charAt(); 来比较字符串中的值吗?

Java生产者消费者停止消费者线程

android - 如何处理 fragment 上的 GoogleApiClient

java - java中线程的中断状态标志在哪里,为什么interrupted()方法是静态的

Android:SurfaceView 忽略 postInvalidate()?

Android - MapsActivity 标题栏中的后退按钮

java - 有没有一种方法可以在不触摸并按住 android recyclerview 中的项目的情况下拖放项目

android - 在 Fragment 中实现接口(interface)

java - 如何在android中的fragment中使用谷歌地图?

java - Hibernate 什么时候打印统计信息?