package com.bczm.widgetcollections.ui.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bczm.widgetcollections.ui.widget.LoadingPage;
import com.bczm.widgetcollections.ui.widget.LoadingPage.LoadResult;
import com.bczm.widgetcollections.utils.UIUtils;
import com.bczm.widgetcollections.utils.ViewUtils;
import java.util.List;
import io.vov.vitamio.LibsChecker;
public abstract class BaseFragment extends Fragment {
protected LoadingPage mContentView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//每次ViewPager要展示该页面时,均会调用该方法获取显示的View
if (mContentView == null) {//为null时,创建一个
mContentView = new LoadingPage(getActivity()) {
@Override
public LoadResult load() {
return BaseFragment.this.load();
}
@Override
public View createLoadedView() {
View view= BaseFragment.this.createLoadedView();
initViewsAndEvents();
return view;
}
};
} else {//不为null时,需要把自身从父布局中移除,因为ViewPager会再次添加
ViewUtils.removeSelfFromParent(mContentView);
}
return mContentView;
}
protected abstract void initViewsAndEvents();
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
show();
}
/** 当显示的时候,加载该页面 */
public void show() {
if (mContentView != null) {
mContentView.show();
}
}
public LoadResult check(Object obj) {
if (obj == null) {
return LoadResult.ERROR;
}
if (obj instanceof List) {
List list = (List) obj;
if (list.size() == 0) {
return LoadResult.EMPTY;
}
}
return LoadResult.SUCCEED;
}
/** 加载数据 */
protected abstract LoadResult load();
/** 加载完成的View */
protected abstract View createLoadedView();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!LibsChecker.checkVitamioLibs(getActivity()))
return;
}
}