675 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			675 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | package com.novelbook.android.Fragments; | |||
|  | 
 | |||
|  | import android.content.Context; | |||
|  | import android.graphics.Rect; | |||
|  | import android.os.Bundle; | |||
|  | import android.os.Handler; | |||
|  | import android.os.Message; | |||
|  | import android.support.v4.app.Fragment; | |||
|  | import android.support.v4.app.FragmentPagerAdapter; | |||
|  | import android.support.v4.widget.SwipeRefreshLayout; | |||
|  | import android.support.v7.widget.GridLayoutManager; | |||
|  | import android.support.v7.widget.LinearLayoutManager; | |||
|  | import android.support.v7.widget.RecyclerView; | |||
|  | import android.text.TextUtils; | |||
|  | import android.util.Log; | |||
|  | import android.view.View; | |||
|  | import android.widget.Button; | |||
|  | import android.widget.ImageView; | |||
|  | import android.widget.LinearLayout; | |||
|  | import android.widget.TextView; | |||
|  | import android.widget.Toast; | |||
|  | 
 | |||
|  | import com.bumptech.glide.Glide; | |||
|  | import com.google.gson.Gson; | |||
|  | import com.google.gson.JsonArray; | |||
|  | import com.google.gson.JsonElement; | |||
|  | import com.google.gson.JsonObject; | |||
|  | import com.google.gson.JsonParser; | |||
|  | import com.novelbook.android.BookActivity; | |||
|  | import com.novelbook.android.R; | |||
|  | import com.novelbook.android.bean.FirstPage; | |||
|  | import com.novelbook.android.bean.NovelBlock; | |||
|  | import com.novelbook.android.db.Novel; | |||
|  | import com.novelbook.android.db.SiteRule; | |||
|  | 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.CyclePageIndicator; | |||
|  | import com.novelbook.android.utils.GsonUtil; | |||
|  | import com.novelbook.android.utils.ImageUtil; | |||
|  | import com.novelbook.android.utils.MyViewPager; | |||
|  | import com.novelbook.android.utils.OnItemClickListener; | |||
|  | import com.novelbook.android.adapter.BookListAdapter; | |||
|  | import com.umeng.analytics.MobclickAgent; | |||
|  | import com.youth.banner.Banner; | |||
|  | import com.youth.banner.BannerConfig; | |||
|  | import com.youth.banner.Transformer; | |||
|  | import com.youth.banner.listener.OnBannerListener; | |||
|  | import com.youth.banner.loader.ImageLoader; | |||
|  | 
 | |||
|  | import org.json.JSONObject; | |||
|  | import org.litepal.LitePal; | |||
|  | 
 | |||
|  | import java.util.ArrayList; | |||
|  | import java.util.Iterator; | |||
|  | import java.util.List; | |||
|  | 
 | |||
|  | import butterknife.BindView; | |||
|  | import butterknife.OnClick; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | public class Fragment_jingxuan extends BasicFragment implements OnBannerListener { | |||
|  |     public static final String TAG=Fragment_jingxuan.class.getSimpleName(); | |||
|  | 
 | |||
|  |     private String mParam1; | |||
|  |     private String mParam2; | |||
|  |     //@BindView(R.id.llTuijian) | |||
|  |     //   LinearLayout llTuijian; | |||
|  |     @BindView(R.id.banner) | |||
|  |     Banner banner; | |||
|  |     @BindView(R.id.dot_horizontal) | |||
|  |     LinearLayout cyclell; | |||
|  |     @BindView(R.id.viewpager_tuijian) | |||
|  |     MyViewPager mViewpagerTuijian; | |||
|  |     //@BindView(R.id.titleIndictator) | |||
|  |     // TitlePageIndicator titleIndicator; | |||
|  |     @BindView(R.id.imageBlock0) | |||
|  |     ImageView imageViewBlock0; | |||
|  |     @BindView(R.id.imageBlock1) | |||
|  |     ImageView imageViewBlock1; | |||
|  |     @BindView(R.id.imageBlock2) | |||
|  |     ImageView imageViewBlock2; | |||
|  |     @BindView(R.id.imageBlock3) | |||
|  |     ImageView imageViewBlock3; | |||
|  |     @BindView(R.id.tvBlock0) | |||
|  |     TextView tvBlock0; | |||
|  |     @BindView(R.id.tvBlock1) | |||
|  |     TextView tvBlock1; | |||
|  |     @BindView(R.id.tvBlock2) | |||
|  |     TextView tvBlock2; | |||
|  |     @BindView(R.id.tvBlock3) | |||
|  |     TextView tvBlock3; | |||
|  |     @BindView(R.id.buttonMore1) | |||
|  |     Button btnMore1; | |||
|  |     @BindView(R.id.buttonMore2) | |||
|  |     Button btnMore2; | |||
|  |     @BindView(R.id.buttonMore3) | |||
|  |     Button btnMore3; | |||
|  |     @BindView(R.id.buttonMore4) | |||
|  |     Button btnMore4; | |||
|  |     @BindView(R.id.llBlock1) | |||
|  |     LinearLayout ll1; | |||
|  |     @BindView(R.id.llBlock2) | |||
|  |     LinearLayout ll2; | |||
|  |     @BindView(R.id.llBlock3) | |||
|  |     LinearLayout ll3; | |||
|  |     @BindView(R.id.llBlock4) | |||
|  |     LinearLayout ll4; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     private List<Fragment> mFragments; | |||
|  |     private ArrayList<View> mList; | |||
|  |     // String[] mTitle; | |||
|  |     private List<NovelBlock> mBlocks; | |||
|  |     private List<String> list_path; | |||
|  |     private List<String> list_title; | |||
|  | 
 | |||
|  |     private FirstPage mFirstPage; | |||
|  |     private int INDEX_BANNER =1; | |||
|  |     private int INDEX_TUIJIAN =2; | |||
|  |     private int blockIndex =3; //从第3个block 开始处理 | |||
|  |     private int gridItemSpace = 0; | |||
|  |     public Fragment_jingxuan() { | |||
|  |         // Required empty public constructor | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public static Fragment_jingxuan newInstance(String param1, String param2) { | |||
|  |         Fragment_jingxuan fragment = new Fragment_jingxuan(); | |||
|  |         Bundle args = new Bundle(); | |||
|  | 
 | |||
|  |         fragment.setArguments(args); | |||
|  |         return fragment; | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     @Override | |||
|  |     protected int getLayoutRes() { | |||
|  |         return R.layout.fragment_jingxuan; | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public void initData() { | |||
|  | 
 | |||
|  | 
 | |||
|  |         showProgressDialog(true, "正在加载"); | |||
|  | 
 | |||
|  |        BookSubscribe.getFirstPage(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; | |||
|  |                 // mFirstPage= gson.fromJson(result, FirstPage.class); | |||
|  |                 try { | |||
|  | 
 | |||
|  |                     mBlocks = GsonUtil.parserNovleBlocks(result,"blocks"); | |||
|  |                 } catch (Exception e) { | |||
|  |                     e.printStackTrace(); | |||
|  |                 } | |||
|  |                 handler.sendEmptyMessage(1); | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void onFault(String errorMsg) { | |||
|  |                 //失败 | |||
|  |               //  Log.d(TAG, String.format("init data HttpMethods error on init, trycnt %s  " ,error_try )); | |||
|  |                 retryErorr(1); | |||
|  | 
 | |||
|  |             } | |||
|  |         }, getActivity())); | |||
|  | 
 | |||
|  | 
 | |||
|  |     } | |||
|  |     protected   void processArguments(){ | |||
|  |         if (getArguments() != null) { | |||
|  |             Bundle bundle = getArguments() ; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  |     @Override | |||
|  |     protected  void fillData() { | |||
|  |         /* | |||
|  |         mHotNewData_l = initData(mHotNewData_l, 'B'); | |||
|  |         mHotNewData_g = initData(mHotNewData_g, 'D'); | |||
|  |         mHotLianZaiData_l = initData(mHotLianZaiData_l, 'C'); | |||
|  |         mHotLianZaiData_g = initData(mHotLianZaiData_g, 'D'); | |||
|  |         mFinishedData_l = initData(mFinishedData_l, 'A'); | |||
|  |         mFinishedData_g = initData(mFinishedData_g, 'G'); | |||
|  |         */ | |||
|  | 
 | |||
|  |         ll1.setVisibility(View.GONE); | |||
|  |         ll2.setVisibility(View.GONE); | |||
|  |         ll3.setVisibility(View.GONE); | |||
|  |         ll4.setVisibility(View.GONE); | |||
|  |         blockIndex=3; | |||
|  | 
 | |||
|  | 
 | |||
|  |             if(mBlocks ==null || mBlocks.size() ==0){ | |||
|  |                 return; | |||
|  |             } | |||
|  |             blockIndex--; | |||
|  |             if(mBlocks.size()>blockIndex) { | |||
|  |                 ll1.setVisibility(View.VISIBLE); | |||
|  |                 mHotNewData_l = mBlocks.get(blockIndex).getNs().subList(0,mBlocks.get(blockIndex).getOneself()); | |||
|  |                 mHotNewData_g = mBlocks.get(blockIndex).getNs().subList(mBlocks.get(blockIndex).getOneself(),mBlocks.get(blockIndex).getNs().size()-1); | |||
|  |                 tvBlock1.setText(mBlocks.get(blockIndex).getName()); | |||
|  |                 loadImageView(mBlocks.get(blockIndex).getIcon(),imageViewBlock1); | |||
|  |                 if(TextUtils.isEmpty(mBlocks.get(blockIndex).getTitle())){ | |||
|  |                     btnMore1.setVisibility(View.GONE); | |||
|  |                 }else { | |||
|  |                     btnMore1.setTag(mBlocks.get(blockIndex)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 blockIndex++; | |||
|  |             } | |||
|  |       //  mHotNewData_g = initData(mHotNewData_g, 'D'); | |||
|  |         if(mBlocks.size()>blockIndex) { | |||
|  |             ll2.setVisibility(View.VISIBLE); | |||
|  |             mHotLianZaiData_l =  mBlocks.get(blockIndex).getNs().subList(0,mBlocks.get(blockIndex).getOneself()); | |||
|  |             mHotLianZaiData_g = mBlocks.get(blockIndex).getNs().subList(mBlocks.get(blockIndex).getOneself(),mBlocks.get(blockIndex).getNs().size()-1); | |||
|  |             tvBlock2.setText(mBlocks.get(blockIndex).getName()); | |||
|  |             loadImageView(mBlocks.get(blockIndex).getIcon(),imageViewBlock2); | |||
|  | 
 | |||
|  |             if(TextUtils.isEmpty(mBlocks.get(blockIndex).getTitle())){ | |||
|  |                 btnMore2.setVisibility(View.GONE); | |||
|  |             }else { | |||
|  |                 btnMore2.setTag(mBlocks.get(blockIndex)); | |||
|  |             } | |||
|  |             blockIndex++; | |||
|  |         } | |||
|  |       //  mHotLianZaiData_g =  initData(mHotLianZaiData_g, 'D'); | |||
|  |         // mFinishedData_l =  mBlocks.get(2).getNs(); //initData(mFinishedData_l, 'A'); | |||
|  |         if(mBlocks.size()> blockIndex ) { | |||
|  |             ll3.setVisibility(View.VISIBLE); | |||
|  |             mFinishedData_l=  mBlocks.get(blockIndex).getNs().subList(0,mBlocks.get(blockIndex).getOneself()); | |||
|  |             mFinishedData_g = mBlocks.get(blockIndex).getNs().subList(mBlocks.get(blockIndex).getOneself(),mBlocks.get(blockIndex).getNs().size()-1); | |||
|  |             tvBlock3.setText(mBlocks.get(blockIndex).getName()); | |||
|  |             loadImageView(mBlocks.get(blockIndex).getIcon(),imageViewBlock3); | |||
|  | 
 | |||
|  |             if(TextUtils.isEmpty(mBlocks.get(blockIndex).getTitle())){ | |||
|  |                 btnMore3.setVisibility(View.GONE); | |||
|  |             }else { | |||
|  |                 btnMore3.setTag(mBlocks.get(blockIndex)); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         if(mBlocks.size()> blockIndex ) { | |||
|  |             ll4.setVisibility(View.VISIBLE); | |||
|  |             mFinishedData_l=  mBlocks.get(blockIndex).getNs().subList(0,mBlocks.get(blockIndex).getOneself()); | |||
|  |             mFinishedData_g = mBlocks.get(blockIndex).getNs().subList(mBlocks.get(blockIndex).getOneself(),mBlocks.get(blockIndex).getNs().size()-1); | |||
|  |             tvBlock3.setText(mBlocks.get(blockIndex).getName()); | |||
|  |             loadImageView(mBlocks.get(blockIndex).getIcon(),imageViewBlock3); | |||
|  | 
 | |||
|  |             if(TextUtils.isEmpty(mBlocks.get(blockIndex).getTitle())){ | |||
|  |                 btnMore4.setVisibility(View.GONE); | |||
|  |             }else { | |||
|  |                 btnMore4.setTag(mBlocks.get(blockIndex)); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         testBanner(banner, this); | |||
|  |         initialBookList(); | |||
|  |         initTuijianPagers(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public void initViews() { | |||
|  | 
 | |||
|  |        gridItemSpace = getResources().getDimensionPixelSize(R.dimen._10dp); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     @OnClick({R.id.buttonMore1, R.id.buttonMore2, R.id.buttonMoreTuijian, R.id.buttonMore3 | |||
|  |            /* , R.id.buttonCatePingfen, R.id.buttonCateRegeng, R.id.buttonCateTuijian, R.id.buttonCateShoucang, R.id.buttonCateWanjie*/ | |||
|  |     }) | |||
|  |     void bubmitButton(View view) { | |||
|  | 
 | |||
|  |         switch (view.getId()) { | |||
|  |             case R.id.buttonMore1: | |||
|  |                 showPaihangbang(btnMore1.getTag()); | |||
|  |                 break; | |||
|  |             case R.id.buttonMoreTuijian: | |||
|  |                 showPaihangbang("推荐"); | |||
|  |                 break; | |||
|  |             case R.id.buttonMore2: | |||
|  |                 showPaihangbang(btnMore2.getTag()); | |||
|  |                 break; | |||
|  |             case R.id.buttonMore3: | |||
|  |                 showPaihangbang(btnMore3.getTag()); | |||
|  |                 break; | |||
|  |             case R.id.buttonMore4: | |||
|  |                 showPaihangbang(btnMore4.getTag()); | |||
|  |                 break; | |||
|  |            /* case R.id.buttonCatePingfen: | |||
|  |                 showPaihangbang("评分"); | |||
|  |                 break; | |||
|  |             case R.id.buttonCateRegeng: | |||
|  |                 showPaihangbang("最热"); | |||
|  |                 break; | |||
|  |             case R.id.buttonCateWanjie: | |||
|  |                 showPaihangbang("完结"); | |||
|  |                 break; | |||
|  |             case R.id.buttonCateShoucang: | |||
|  |                 showPaihangbang("收藏"); | |||
|  |                 break; | |||
|  |             case R.id.buttonCateTuijian: | |||
|  |                 showPaihangbang("推荐"); | |||
|  |                 break;*/ | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     void testBanner(Banner banner, OnBannerListener listioner) { | |||
|  | 
 | |||
|  |         //放图片地址的集合 | |||
|  |         list_path = mBlocks.get(0).getPictures();//new ArrayList<String>();// mBlocks.get(0).getPictures() ; | |||
|  |         //放标题的集合 | |||
|  |         list_title = new ArrayList<>(); | |||
|  | 
 | |||
|  |         for (Novel nv : mBlocks.get(0).getNs()) { | |||
|  |             list_title.add(nv.getName()); | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         /* | |||
|  |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg"); | |||
|  |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg"); | |||
|  |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg"); | |||
|  |         list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg"); | |||
|  |         list_title.add("好好学习"); | |||
|  |         list_title.add("天天向上"); | |||
|  |         list_title.add("热爱劳动"); | |||
|  |         list_title.add("不搞对象"); | |||
|  |         */ | |||
|  |         //设置内置样式,共有六种可以点入方法内逐一体验使用。 | |||
|  |         banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); | |||
|  |         //设置图片加载器,图片加载器在下方 | |||
|  |         banner.setImageLoader(ImageUtil.loader); | |||
|  |         //设置图片网址或地址的集合 | |||
|  |         banner.setImages(list_path); | |||
|  |         //设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验 | |||
|  |         banner.setBannerAnimation(Transformer.Default); | |||
|  |         //设置轮播图的标题集合 | |||
|  |         banner.setBannerTitles(list_title); | |||
|  |         //设置轮播间隔时间 | |||
|  |         banner.setDelayTime(3000); | |||
|  |         //设置是否为自动轮播,默认是“是”。 | |||
|  |         banner.isAutoPlay(true); | |||
|  |         //设置指示器的位置,小点点,左中右。 | |||
|  |         banner.setIndicatorGravity(BannerConfig.CENTER) | |||
|  |                 //以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面。 | |||
|  |                 .setOnBannerListener(listioner) | |||
|  |                 //必须最后调用的方法,启动轮播图。 | |||
|  |                 .start(); | |||
|  | 
 | |||
|  |     } | |||
|  |     //轮播图的监听方法 | |||
|  | 
 | |||
|  | 
 | |||
|  |     @Override | |||
|  |     public void OnBannerClick(int position) { | |||
|  |         Novel nv = mBlocks.get(0).getNs().get(position); | |||
|  |         showBookDetail(nv); | |||
|  | 
 | |||
|  |         //   showShudanDetail(position); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     //cycle viewpagers | |||
|  | 
 | |||
|  |     //---------重磅推荐------------- | |||
|  | 
 | |||
|  |     void initTuijianPagers() { | |||
|  | 
 | |||
|  |      //   mViewpagerTuijian =( MyViewPager) rootView.findViewById(R.id.viewpager_tuijian); | |||
|  |       //  if (mFragments == null || mFragments.size() == 0) { | |||
|  |             //   mTitle = new String[]{"精选", "榜单", "书单"}; | |||
|  |             mFragments = new ArrayList<>(); | |||
|  |             NovelBlock block = mBlocks.get(1); | |||
|  |         loadImageView(mBlocks.get(1).getIcon(),imageViewBlock0); | |||
|  |         tvBlock0.setText( mBlocks.get(1).getName()); | |||
|  |             List<Novel> nvs = new ArrayList<Novel>(); | |||
|  |             for(Novel novel : block.getNs() ){ | |||
|  | 
 | |||
|  |                 if(nvs.size()<3){ | |||
|  |                     nvs.add(novel); | |||
|  |                 }else { | |||
|  |                     mFragments.add(Fragment_jingxuan_tuijian.newInstance(nvs)); | |||
|  |                     nvs = new ArrayList<Novel>(); | |||
|  |                     nvs.add(novel); | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             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 | |||
|  |         FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(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 mTitle[position]; | |||
|  |             //  } | |||
|  |         }; | |||
|  |         cyclell.removeAllViews(); | |||
|  |         mViewpagerTuijian.setAdapter(mAdapter); | |||
|  |         mViewpagerTuijian.clearOnPageChangeListeners(); | |||
|  |        // mViewpagerTuijian.setOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, mFragments.size())); | |||
|  |         mViewpagerTuijian.addOnPageChangeListener(new CyclePageIndicator(getContext(), cyclell, mFragments.size())); | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     //---------------------------------------------------book cate list-------------------------------begin | |||
|  | 
 | |||
|  |     // private BookListAdapter mAdapter; | |||
|  |     private List<Novel> mHotNewData_l, mHotNewData_g, mHotLianZaiData_l, mHotLianZaiData_g, mFinishedData_l, mFinishedData_g; | |||
|  | 
 | |||
|  |     @BindView(R.id.rvHotNewL) | |||
|  |     RecyclerView rvHotNewL; | |||
|  |     @BindView(R.id.rvHotNewG) | |||
|  |     RecyclerView rvHotNewG; | |||
|  |     @BindView(R.id.rvLianZaiG) | |||
|  |     RecyclerView rvLianZaiG; | |||
|  |     @BindView(R.id.rvLianZaiL) | |||
|  |     RecyclerView rvLianZaiL; | |||
|  |     @BindView(R.id.rvFinishL) | |||
|  |     RecyclerView rvFinishL; | |||
|  |     @BindView(R.id.rvFinishG) | |||
|  |     RecyclerView rvFinishG; | |||
|  | 
 | |||
|  |     int getSpanCnt(){ | |||
|  |         return Constants.NOVEL_SPAN_CNT; | |||
|  |     } | |||
|  | 
 | |||
|  |     void initialBookList() { | |||
|  | 
 | |||
|  |         int spanCnt =getSpanCnt(); | |||
|  |         OnItemClickListener onItemClickListener = new OnItemClickListener() { | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void onItemClick(View view, int position) { | |||
|  |                 showBookDetail(mHotNewData_l.get(position)); | |||
|  |                 // openBook(mHotNewData_l.get(position),null); | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void onItemLongClick(View view, int position) { | |||
|  |                 // initDialog(position); | |||
|  |                 // mAdapter.removeData(position); | |||
|  |             } | |||
|  | 
 | |||
|  |             @Override | |||
|  |             public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |         }; | |||
|  |         if(mHotNewData_l!=null) { | |||
|  |             rvHotNewL.setLayoutManager(new LinearLayoutManager(activity)); | |||
|  |             rvHotNewL.setAdapter(new BookListAdapter(activity, mHotNewData_l, R.layout.recycle_list_item_horizon, onItemClickListener)); | |||
|  |         } | |||
|  |         if(mHotNewData_g!=null) { | |||
|  |             rvHotNewG.setLayoutManager(new GridLayoutManager(activity, spanCnt)); | |||
|  |             if( rvHotNewG.getItemDecorationCount()>0){ | |||
|  |                 rvHotNewG.removeItemDecorationAt(0); | |||
|  |             } | |||
|  |             rvHotNewG.addItemDecoration(new SpaceItemDecoration( gridItemSpace)); | |||
|  |             rvHotNewG.setAdapter(new BookListAdapter(activity, mHotNewData_g, R.layout.recycle_list_item, new OnItemClickListener() { | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemClick(View view, int position) { | |||
|  |                     showBookDetail(mHotNewData_g.get(position)); | |||
|  | 
 | |||
|  |                     // openBook( mHotNewData_g.get(position) ,null); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemLongClick(View view, int position) { | |||
|  |                     // initDialog(position); | |||
|  |                     // mAdapter.removeData(position); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |                 } | |||
|  |             })); | |||
|  |         } | |||
|  |         if(rvLianZaiL!=null) { | |||
|  |             rvLianZaiL.setLayoutManager(new LinearLayoutManager(this.activity)); | |||
|  | 
 | |||
|  |             rvLianZaiL.setAdapter(new BookListAdapter(activity, mHotLianZaiData_l, R.layout.recycle_list_item_horizon, new OnItemClickListener() { | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemClick(View view, int position) { | |||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | |||
|  | 
 | |||
|  | 
 | |||
|  |                     showBookDetail(mHotLianZaiData_l.get(position)); | |||
|  |                     // openBook( mHotLianZaiData_l.get(position) ,null); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemLongClick(View view, int position) { | |||
|  |                     // initDialog(position); | |||
|  |                     // mAdapter.removeData(position); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |                 } | |||
|  |             })); | |||
|  |         } | |||
|  |         if(mHotLianZaiData_g!=null) { | |||
|  |             rvLianZaiG.setLayoutManager(new GridLayoutManager(activity, spanCnt)); | |||
|  |             if( rvLianZaiG.getItemDecorationCount()>0){ | |||
|  |                 rvLianZaiG.removeItemDecorationAt(0); | |||
|  |             } | |||
|  |             rvLianZaiG.addItemDecoration(new SpaceItemDecoration( gridItemSpace)); | |||
|  |             rvLianZaiG.setAdapter(new BookListAdapter(activity, mHotLianZaiData_g, R.layout.recycle_list_item, new OnItemClickListener() { | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemClick(View view, int position) { | |||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | |||
|  | 
 | |||
|  |                     showBookDetail(mHotLianZaiData_g.get(position)); | |||
|  | 
 | |||
|  |                     // openBook( mHotLianZaiData_g.get(position) ,null); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemLongClick(View view, int position) { | |||
|  |                     // initDialog(position); | |||
|  |                     // mAdapter.removeData(position); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |                 } | |||
|  |             })); | |||
|  |         } | |||
|  |         if(mFinishedData_l!=null) { | |||
|  |             rvFinishL.setLayoutManager(new LinearLayoutManager(this.activity)); | |||
|  |             rvFinishL.setAdapter(new BookListAdapter(activity, mFinishedData_l, R.layout.recycle_list_item_horizon, new OnItemClickListener() { | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemClick(View view, int position) { | |||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | |||
|  | 
 | |||
|  |                     showBookDetail(mFinishedData_l.get(position)); | |||
|  | 
 | |||
|  |                     //  openBook( mFinishedData_l.get(position) ,null); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemLongClick(View view, int position) { | |||
|  |                     // initDialog(position); | |||
|  |                     // mAdapter.removeData(position); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |                 } | |||
|  |             })); | |||
|  |         } | |||
|  |         if(mFinishedData_g!=null) { | |||
|  |             rvFinishG.setLayoutManager(new GridLayoutManager(activity, spanCnt)); | |||
|  |             if( rvFinishG.getItemDecorationCount()>0){ | |||
|  |                 rvFinishG.removeItemDecorationAt(0); | |||
|  |             } | |||
|  |             rvFinishG.addItemDecoration(new SpaceItemDecoration( gridItemSpace)); | |||
|  |             rvFinishG.setAdapter(new BookListAdapter(activity, mFinishedData_g, R.layout.recycle_list_item, new OnItemClickListener() { | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemClick(View view, int position) { | |||
|  |                     //  Toast.makeText(activity, position + "grid click",  Toast.LENGTH_SHORT).show(); | |||
|  | 
 | |||
|  |                     showBookDetail(mFinishedData_g.get(position)); | |||
|  | 
 | |||
|  |                     // openBook( mFinishedData_g.get(position) ,null); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onItemLongClick(View view, int position) { | |||
|  |                     // initDialog(position); | |||
|  |                     // mAdapter.removeData(position); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 @Override | |||
|  |                 public void onLinearOutClick(View view, int position, int llId) { | |||
|  | 
 | |||
|  |                 } | |||
|  |             })); | |||
|  |         } | |||
|  |     } | |||
|  |     public class SpaceItemDecoration extends RecyclerView.ItemDecoration { | |||
|  | 
 | |||
|  |         private int space; | |||
|  | 
 | |||
|  |         public SpaceItemDecoration(int space) { | |||
|  |             this.space = space*3; | |||
|  |         } | |||
|  | 
 | |||
|  |         @Override | |||
|  |         public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { | |||
|  |             //不是第一个的格子都设一个左边和底部的间距 | |||
|  |             //outRect.left = space; | |||
|  |           //  outRect.bottom = space; | |||
|  | 
 | |||
|  |             //由于每行都只有3个,所以第一个都是3的倍数,把左边距设为0 | |||
|  |             if (parent.getChildLayoutPosition(view) %getSpanCnt()==0) { | |||
|  |                 Log.d(TAG, "getItemOffsets: left " +parent.getChildLayoutPosition(view)); | |||
|  |                 //outRect.set(0,0,0,0); | |||
|  |                  outRect.right=space; | |||
|  |                  outRect.left=0; | |||
|  |             }else if(parent.getChildLayoutPosition(view) %getSpanCnt()==2){ | |||
|  |                 Log.d(TAG, "getItemOffsets: right " +parent.getChildLayoutPosition(view)); | |||
|  |                // outRect.set(0,0,0,0); | |||
|  |                   outRect.right=0; | |||
|  |                   outRect.left=space; | |||
|  |             }else { | |||
|  |               //  outRect.set(space, 0, space, 0); | |||
|  |                //  outRect.right=space; | |||
|  |               //  outRect.left=space; | |||
|  |                 Log.d(TAG, "getItemOffsets: center " +parent.getChildLayoutPosition(view)); | |||
|  |             } | |||
|  |                // outRect.set(0,0,0,0); | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  |     @Override | |||
|  |     public void onResume() { | |||
|  |         super.onResume(); | |||
|  |         MobclickAgent.onPageStart(TAG); | |||
|  |     } | |||
|  |     @Override | |||
|  |     public void onPause(){ | |||
|  |         super.onPause(); | |||
|  |         MobclickAgent.onPageEnd(TAG); | |||
|  |     } | |||
|  | } |