setUserVisibleHint()与FragmentStatePagerAdapter一起出现问题

时间:2015-05-20 08:38:07

标签: android android-fragments android-viewpager android-fragmentactivity fragmentstatepageradapter

我知道这个问题已经在不同的网站上提出过(比如herethere,但我很难找到解决我具体用例的方法。

事情就是这样:我有3个标签(每个标签扩展Fragment),由ActionBarActivity(称为 Home )托管。 Home 拥有ViewPager,扩展了FragmentStatePagerAdapter(这是创建不同标签的位置)。

当我滑动到最后一个标签(第三个标签)时,我使用setUserVisibleHint()使用AsyncTask<>从服务器加载一些数据:

public class TabOperations extends Fragment {

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisible())
            loadUserRequestByDate(); // Launch Asynctask<> method.
    }
}

从第一个标签到最后一个标签的滑动时效果很好。但是,当我之前向后滑动选项卡(因此,第二个)时,会触发setUserVisibleHint()中的方法(所以,loadUserRequestByDate())。

我该如何避免这种行为?

1 个答案:

答案 0 :(得分:2)

您是否尝试使用setOffscreenPageLimit(3)为viewpager保留片段。

http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int)