package com.hx.hxchat.fragment; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.hx.hxchat.activity.ChatHistoryFragmentCopy; import com.mgw.member.ui.fragment.BaseFragment; import com.mgw.member.ui.widget.LoadingPage; import com.mgw.member.ui.widget.LoadingPage.LoadResult; import com.mgw.member.uitls.LogUtils; import com.mgw.member.uitls.UIUtils; import com.mgw.member.uitls.ViewUtils; public abstract class HXBaseFragment extends Fragment { protected static final String TAG = HXBaseFragment.class.getSimpleName(); protected LoadingPage mContentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //每次ViewPager要展示该页面时,均会调用该方法获取显示的View if (mContentView == null) {//为null时,创建一个 mContentView = new LoadingPage(UIUtils.getContext()) { @Override public LoadResult load() { LogUtils.i(TAG, "load"); return HXBaseFragment.this.load(); } @Override public View createLoadedView() { LogUtils.i(TAG, "createLoadedView"); return HXBaseFragment.this.createLoadedView(); } @Override protected View createEmptyView() { // TODO Auto-generated method stub LogUtils.i(TAG, "createEmptyView"); return super.createEmptyView(); } @Override protected View createErrorView() { // TODO Auto-generated method stub LogUtils.i(TAG, "createErrorView"); return super.createErrorView(); } @Override protected View createLoadingView() { // TODO Auto-generated method stub LogUtils.i(TAG, "createLoadingView"); return super.createLoadingView(); } }; } else {//不为null时,需要把自身从父布局中移除,因为ViewPager会再次添加 ViewUtils.removeSelfFromParent(mContentView); } return mContentView; } /** 当显示的时候,加载该页面 */ public void show() { if (mContentView != null) { mContentView.show(); LogUtils.i(ChatHistoryFragmentCopy.TAG, "show"); } } public void reset() { if (mContentView != null) { mContentView.reset(); } } 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.SUCCEED; } } return LoadResult.SUCCEED; } /** 加载数据 */ protected abstract LoadResult load(); /** 加载完成的View */ protected abstract View createLoadedView(); }