693 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			693 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.app.FragmentStatePagerAdapter;
 | ||
| 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());
 | ||
|                 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());
 | ||
|             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());
 | ||
|             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());
 | ||
|             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)/2;
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|     @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[]{"精选", "榜单", "书单"};
 | ||
|         if(mBlocks==null ||mBlocks.size()<2){
 | ||
|             return;
 | ||
|         }
 | ||
|         if(mFragments==null) {
 | ||
|             mFragments = new ArrayList<>();
 | ||
|         }else{
 | ||
|             mFragments.clear();
 | ||
|         }
 | ||
| 
 | ||
|         NovelBlock block = mBlocks.get(1);
 | ||
|         if(block==null  ){
 | ||
|             return;
 | ||
|         }
 | ||
|         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);
 | ||
|                 }
 | ||
|             }
 | ||
|             if(nvs.size()>0){
 | ||
|                 mFragments.add(Fragment_jingxuan_tuijian.newInstance(nvs));
 | ||
|             }
 | ||
| 
 | ||
|             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
 | ||
|         FragmentStatePagerAdapter 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 mTitle[position];
 | ||
|             //  }
 | ||
|         };
 | ||
|         cyclell.removeAllViews();
 | ||
|         mViewpagerTuijian.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 gridItemsLayout =R.layout.recycle_list_item_large;
 | ||
|         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,gridItemsLayout, 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, gridItemsLayout, 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, gridItemsLayout, 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*2;
 | ||
|         }
 | ||
| 
 | ||
|         @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();
 | ||
|         initTuijianPagers();
 | ||
|         MobclickAgent.onPageStart(TAG);
 | ||
|     }
 | ||
|     @Override
 | ||
|     public void onPause(){
 | ||
|         super.onPause();
 | ||
|         MobclickAgent.onPageEnd(TAG);
 | ||
|     }
 | ||
| } |