package com.dreamspace.uucampus.ui; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.view.View; import com.dreamspace.uucampus.R; import com.dreamspace.uucampus.api.ApiManager; import com.dreamspace.uucampus.common.utils.NetUtils; import com.dreamspace.uucampus.model.CategoryItem; import com.dreamspace.uucampus.model.api.AllCategoryRes; import com.dreamspace.uucampus.ui.base.BaseLazyFragment; import com.dreamspace.uucampus.ui.fragment.Market.ShowShopsFragment; import com.ogaclejapan.smarttablayout.SmartTabLayout; import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItemAdapter; import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItems; import com.ogaclejapan.smarttablayout.utils.v4.FragmentStatePagerItemAdapter; import java.util.ArrayList; import butterknife.Bind; import butterknife.ButterKnife; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; /** * Created by money on 2015/9/14. */ public class MarketFragment extends BaseLazyFragment { public static String TYPE_NAME = "type"; @Bind(R.id.market_view_pager) ViewPager pager; @Bind(R.id.market_smarttablayout) SmartTabLayout smartTabLayout; private boolean fragmentDestory = false; // private FragmentStatePagerItemAdapter pagerAdpater private FragmentPagerItemAdapter pagerAdpater; private ArrayList<CategoryItem> categories; public static final String CATEGORY = "category"; @Override protected void onFirstUserVisible() { getCategory(); } @Override protected void onUserVisible() { } @Override protected void onUserInvisible() { } @Override protected void initViewsAndEvents() { } @Override protected int getContentViewLayoutID() { return R.layout.fragment_third; } @Override protected View getLoadingTargetView() { return ButterKnife.findById(getActivity(),R.id.content_rl); } private void loadViews(){ FragmentPagerItems.Creator pagerItems = FragmentPagerItems.with(mContext); for(CategoryItem categoryItem:categories){ Bundle bundle = new Bundle(); bundle.putParcelable(CATEGORY,categoryItem); pagerItems.add(categoryItem.getName(),ShowShopsFragment.class,bundle); } // pagerAdpater = new FragmentStatePagerItemAdapter(getSupportFragmentManager(),pagerItems.create()); pagerAdpater = new FragmentPagerItemAdapter(getSupportFragmentManager(),pagerItems.create()); smartTabLayout.setCustomTabView(R.layout.market_smart_tab_title_tab,R.id.title_tv); pager.setAdapter(pagerAdpater); smartTabLayout.setViewPager(pager); } private void getCategory(){ toggleShowLoading(true,null); if(!NetUtils.isNetworkConnected(mContext)){ showNetWorkError(); toggleNetworkError(true,getCategoryClickListener); return; } ApiManager.getService(mContext).getAllShopCategory(new Callback<AllCategoryRes>() { @Override public void success(AllCategoryRes allCategoryRes, Response response) { if(allCategoryRes != null && !fragmentDestory){ categories = allCategoryRes.getCategory(); loadViews(); toggleRestore(); } } @Override public void failure(RetrofitError error) { showInnerError(error); toggleShowError(true,null,getCategoryClickListener); } }); } private View.OnClickListener getCategoryClickListener = new View.OnClickListener() { @Override public void onClick(View v) { getCategory(); } }; @Override public void onDestroy() { fragmentDestory = true; super.onDestroy(); } }