您的位置:首页 > 理论基础 > 计算机网络

Fragment+ViewPager网络请求数据问题

2016-02-25 14:56 525 查看
通过网上查阅资料,总结归纳的解决办法,可能不会适用所有人,但还是希望给大家提供方便

public abstract class BaseFragment extends Fragment {
private boolean isViewPrepared=false;//是否初始化完成

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initStatus();
}

public abstract void initStatus();
public abstract void initData();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = setContentView(inflater);
setupView(v);
addListener(v);

if (!isViewPrepared&&getUserVisibleHint()) {//尚未初始化view,不能执行initData()方法[会报空指针]
initData();
}
isViewPrepared=true;//isViewPrepared判断和赋值位置不能变,考虑setUserVisibleHint更新数据
return v;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
// 判断该Fragment时候已经正在前台显示,就可以知道什么时候去加载数据了
if (isVisibleToUser && isViewPrepared) {
initData(); // 加载数据的方法
}
super.setUserVisibleHint(isVisibleToUser);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: