Fragment+ViewPager网络请求数据问题

来源:互联网 发布:语言翻译软件 编辑:程序博客网 时间:2024/04/29 13:34

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

    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);}}
0 2
原创粉丝点击