我知道这个问题已经在不同的网站上提出过(比如here和there,但我很难找到解决我具体用例的方法。
事情就是这样:我有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()
)。
我该如何避免这种行为?
答案 0 :(得分:2)
您是否尝试使用setOffscreenPageLimit(3)为viewpager保留片段。