198 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| package com.novelbook.android.Fragments;
 | ||
| 
 | ||
| import android.os.Bundle;
 | ||
| import android.support.v4.app.Fragment;
 | ||
| import android.support.v4.app.FragmentStatePagerAdapter;
 | ||
| import android.support.v4.view.ViewPager;
 | ||
| import android.util.Log;
 | ||
| import android.view.View;
 | ||
| 
 | ||
| import com.flyco.tablayout.SlidingTabLayout;
 | ||
| import com.novelbook.android.R;
 | ||
| import com.novelbook.android.bean.BangdanCate;
 | ||
| import com.novelbook.android.netsubscribe.BookSubscribe;
 | ||
| import com.novelbook.android.netutils.OnSuccessAndFaultListener;
 | ||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub;
 | ||
| import com.novelbook.android.utils.Constants;
 | ||
| import com.novelbook.android.utils.GsonUtil;
 | ||
| import com.umeng.analytics.MobclickAgent;
 | ||
| 
 | ||
| import java.util.ArrayList;
 | ||
| import java.util.List;
 | ||
| 
 | ||
| import butterknife.BindView;
 | ||
| import q.rorbin.verticaltablayout.VerticalTabLayout;
 | ||
| 
 | ||
| 
 | ||
| public class Fragment_bangdans extends BasicFragment {
 | ||
| 
 | ||
|     public static final String TAG= Fragment_bangdans.class.getSimpleName();
 | ||
| 
 | ||
|     @BindView(R.id.viewpager)
 | ||
|     ViewPager mViewpager;
 | ||
|     @BindView(R.id.tablayout)
 | ||
|     VerticalTabLayout tabLayout;
 | ||
|     private FragmentStatePagerAdapter mAdapter =null;
 | ||
|     private ArrayList<BasicFragment> mFragments;
 | ||
|     ArrayList<View> mList;
 | ||
|     String[] mTitle;
 | ||
| 
 | ||
|     List<BangdanCate> mCateList;
 | ||
|     protected   void processArguments(){
 | ||
|         if (getArguments() != null) {
 | ||
|             Bundle bundle = getArguments() ;
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     public static Fragment_bangdans newInstance(String param1, String param2) {
 | ||
|         Fragment_bangdans fragment = new Fragment_bangdans();
 | ||
|         Bundle args = new Bundle();
 | ||
| 
 | ||
|         fragment.setArguments(args);
 | ||
|         return fragment;
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     public void onCreate(Bundle savedInstanceState) {
 | ||
|         super.onCreate(savedInstanceState);
 | ||
| 
 | ||
|         if (getArguments() != null) {
 | ||
|          // mParam1 = getArguments().getString(ARG_PARAM1);
 | ||
|           //  mParam2 = getArguments().getString(ARG_PARAM2);
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|     @Override
 | ||
|     protected int getLayoutRes() {
 | ||
|         return R.layout.fragment_bangdans;
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     public void initData() {
 | ||
| 
 | ||
|         showProgressDialog(false,"正在加载榜单列表");
 | ||
|         getCateTabTtitle();
 | ||
| 
 | ||
|     }
 | ||
|     @Override
 | ||
|     public void fillData() {
 | ||
| 
 | ||
|        // initTabs();
 | ||
|     };
 | ||
| 
 | ||
|     public void onSexSwitch(){
 | ||
|         if(mAdapter!=null) {
 | ||
|             for(BasicFragment bf:mFragments){
 | ||
|                    bf.initData();
 | ||
|             }
 | ||
|             mAdapter.notifyDataSetChanged();
 | ||
| 
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     public void initViews(){
 | ||
|         mFragments = new ArrayList<>();
 | ||
|         mAdapter = new FragmentStatePagerAdapter(getChildFragmentManager()) {
 | ||
|             @Override
 | ||
|             public Fragment getItem(int position) {
 | ||
|                 return mFragments.get(position);
 | ||
|             }
 | ||
| 
 | ||
|             @Override
 | ||
|             public int getCount() {
 | ||
|                 return mFragments.size();
 | ||
|             }
 | ||
|             //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text
 | ||
|             @Override
 | ||
|             public CharSequence getPageTitle(int position) {
 | ||
|                 return mCateList.get(position).getName();
 | ||
|             }
 | ||
|         };
 | ||
| 
 | ||
| 
 | ||
|       //  mViewpager.setAdapter(mAdapter);
 | ||
|       //  tabLayout.setupWithViewPager(mViewpager);
 | ||
|     }
 | ||
| 
 | ||
|     //---------tabs-------------
 | ||
| 
 | ||
|     void initTabs() {
 | ||
|         Log.d(TAG, "getCateTabTtitle: init tabs");
 | ||
|        // if(mFragments ==null || mFragments.size() ==0)
 | ||
|         {
 | ||
|            // mTitle = new String[]{"精选", "榜单", "书单"};
 | ||
|             mFragments.clear();
 | ||
| 
 | ||
|           for(BangdanCate bangdanCate : mCateList) {
 | ||
|               mFragments.add(Fragment_bangdan.newInstance(bangdanCate.getCid()));
 | ||
|           }
 | ||
| 
 | ||
|          //   mFragments.add(new Fragment_shudan());
 | ||
|             Log.d(TAG,"initial fragments in tabs ");
 | ||
|          }
 | ||
|         Log.d(TAG,"set viewPager adapter ");
 | ||
|         //    FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) {   第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失  https://blog.csdn.net/allan_bst/article/details/64920076
 | ||
|         mAdapter.notifyDataSetChanged();
 | ||
|       //  mViewpager.setOffscreenPageLimit(30);//预加载设置
 | ||
|         if(mCateList!=null){
 | ||
|             mViewpager.setOffscreenPageLimit(mCateList.size()+1);//预加载设置
 | ||
|         }
 | ||
|         mViewpager.setAdapter(mAdapter);
 | ||
|         tabLayout.setupWithViewPager(mViewpager);
 | ||
|         //  tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
 | ||
|       //  mViewpager.setCurrentItem(0);
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     void getCateTabTtitle(){
 | ||
| 
 | ||
|         Log.d(TAG, "getCateTabTtitle: prepare cate tabs");
 | ||
| 
 | ||
|         BookSubscribe.getPaihangBangCateList(Constants.SEX,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
 | ||
|             @Override
 | ||
|             public void onSuccess(String result) {
 | ||
|                  Log.d(TAG, String.format("init data HttpMethods successed on init, trycnt %s   " ,error_try));
 | ||
|                 error_try =0;
 | ||
|                 try {
 | ||
| 
 | ||
|                     mCateList = GsonUtil.parserBangdanCate(result,"subCategories");
 | ||
| 
 | ||
|                     initTabs();
 | ||
| 
 | ||
|                 } catch (Exception e) {
 | ||
|                     Log.e(TAG, "onSuccess: prepare book",e );
 | ||
|                     e.printStackTrace();
 | ||
|                 }
 | ||
|                 handler.sendEmptyMessage(0);
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|             @Override
 | ||
|             public void onFault(String errorMsg) {
 | ||
|                 //失败
 | ||
|              //  Log.d(TAG, String.format("init data HttpMethods error on init, trycnt %s  " ,error_try ));
 | ||
|                 //  getSearchTabTtitle();
 | ||
|                 retryErorr(0);
 | ||
|             }
 | ||
|         },getActivity()));
 | ||
| 
 | ||
|     }
 | ||
|     @Override
 | ||
|     public void onResume() {
 | ||
|         super.onResume();
 | ||
|         MobclickAgent.onPageStart(TAG);
 | ||
|     }
 | ||
|     @Override
 | ||
|     public void onPause(){
 | ||
|         super.onPause();
 | ||
|         MobclickAgent.onPageEnd(TAG);
 | ||
|     }
 | ||
| }
 |