package com.novelbook.android.Fragments; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.design.widget.AppBarLayout; import android.support.v4.widget.NestedScrollView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.widget.TextView; import com.ixiaow.multilayout.MultiLayout; import com.novelbook.android.R; import com.novelbook.android.bean.ProgressType; import com.novelbook.android.db.Novel; import com.novelbook.android.netapi.RandomHost; import com.novelbook.android.netsubscribe.BookSubscribe; import com.novelbook.android.netutils.NetUtil; import com.novelbook.android.netutils.OnSuccessAndFaultListener; import com.novelbook.android.netutils.OnSuccessAndFaultSub; import com.novelbook.android.utils.CommonUtil; import com.novelbook.android.utils.Constants; import com.novelbook.android.utils.GsonUtil; import com.novelbook.android.utils.OnItemClickListener; import com.novelbook.android.adapter.BookListAdapter; import com.flyco.tablayout.CommonTabLayout; import com.flyco.tablayout.listener.CustomTabEntity; import com.umeng.analytics.MobclickAgent; import org.json.JSONArray; import org.json.JSONObject; import org.litepal.util.Const; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import butterknife.BindView; import static com.novelbook.android.utils.Constants.lstNt; import static com.novelbook.android.utils.Constants.lstProgress; import static com.novelbook.android.utils.Constants.lstSex; public class Fragment_paihang extends BasicFragment { public static final String TAG = Fragment_paihang.class.getSimpleName(); private ArrayList mData1,mData2,mData3 ; private int tab1Pos,tab2Pos,tab3Pos; private BookListAdapter mAdapter; // private BookListAdapter mAdapter; private List mData;; private List mMoreData; @BindView(R.id.rvPaihang) RecyclerView rvPaihang; /* @BindView(R.id.tab_layout1) CommonTabLayout tabLayout1; @BindView(R.id.tab_layout2) CommonTabLayout tabLayout2; @BindView(R.id.tab_layout3)*/ CommonTabLayout tabLayout3; @BindView(R.id.topic_layout) MultiLayout topic_layout; @BindView(R.id.topic_layout1) MultiLayout topic_layout1; @BindView(R.id.topic_layout2) MultiLayout topic_layout2; @BindView(R.id.app_bar) AppBarLayout appBarLayout; public Fragment_paihang() { // Required empty public constructor } protected void processArguments(){ if (getArguments() != null) { Bundle bundle = getArguments() ; } } @Override protected void fillData() { if(rvPaihang.getAdapter()==null) { rvPaihang.setLayoutManager(new LinearLayoutManager(activity)); rvPaihang.setAdapter(mAdapter); } if(mMoreData!=null) { if(mMoreData.size()>0) { pageNo++; } int status = getPageCount() >= pageNo ? BookListAdapter.LOADING_MORE : BookListAdapter.NO_LOAD_MORE; // mAdapter.setPercent(pageNo/pageCount); mAdapter.AddFooterItem(mMoreData); mAdapter.changeMoreStatus(status); } mAdapter.notifyDataSetChanged(); } public static Fragment_paihang newInstance(String param1, String param2) { Fragment_paihang fragment = new Fragment_paihang(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { } } @Override protected int getLayoutRes() { return R.layout.fragment_fragment_paihang; } @Override public void initData() { loadSearchData(); } private void loadSearchData(){ int pn = pageNo; if(lstSex==null){ // getSearchTabTtitle(); // initTabs(); appBarLayout.setVisibility(View.GONE); return; } appBarLayout.setVisibility(View.VISIBLE); String sex = lstSex.get(tab1Pos); String cate = lstNt.get(tab2Pos); if(pageNo==1) { if (mData != null) { //下拉刷新 mData = new ArrayList(); mAdapter.setData(mData); } else { mData = new ArrayList(); mAdapter = new BookListAdapter(activity, mData, R.layout.recycle_list_item_horizon, new OnItemClickListener() { @Override public void onItemClick(View view, int position) { showBookDetail(mData.get(position)); // openBook(mData.get(position),mAdapter); } @Override public void onItemLongClick(View view, int position) { // initDialog(position); // mAdapter.removeData(position); } @Override public void onLinearOutClick(View view, int position, int llId) { } }); mAdapter.setShowTop(true); mAdapter.setShowFootView(true); rvPaihang.setLayoutManager(new LinearLayoutManager(activity)); rvPaihang.setAdapter(mAdapter); } } mMoreData =null; OnSuccessAndFaultListener successAndFaultListener = new OnSuccessAndFaultListener() { @Override public void onSuccess(String result) { error_try=0; Log.d(TAG, String.format("init data HttpMethods successed on init, trycnt %s " ,error_try)); // mFirstPage= gson.fromJson(result, FirstPage.class); try { JSONObject jsonObject = new JSONObject(result); setPageCount(jsonObject.getInt("pageCount")); mMoreData = GsonUtil. parserJsonArray(jsonObject,Constants.BLOCK_TITLE_NOVELS); if(mMoreData.size()>0){ loadListAd(mAdapter,1,mData.size()>0); } } 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 )); // getSearchTabTtitle(); retryErorr(0); } }; showProgressDialog(false, "正在加载..."); BookSubscribe.getCateNovelList(cate, pageNo, tab1Pos+1, Constants.lstProgressType.get(tab3Pos).getId(), new OnSuccessAndFaultSub(successAndFaultListener, getActivity())); } @Override public void initViews(){ appBarLayout.setVisibility(View.GONE); if(lstNt==null) { CommonUtil.getSearchTabTtitle(getActivity()); showProgressDialog(false,"正在加载..."); new Thread(){ @Override public void run() { Log.d(TAG, "prepare book to load options for search" ); while(lstNt==null){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } handler.sendEmptyMessage(MSG_INIT_TAB); } }.start(); } else { initTabs(); } initLoadMoreListener(); } @Override void initTabs() { tmp=0; /* while(lstNt==null){ try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } }*/ List lstType = new ArrayList() ;//Arrays.asList(lstProgress); for(ProgressType progressType : Constants.lstProgressType){ lstType.add(progressType.getName()); } topic_layout.initTabNames(lstNt) ; topic_layout1.initTabNames( lstSex) ; topic_layout2.initTabNames(lstType) ; // topic_layout.initTabNames(lstNt); appBarLayout.setVisibility(View.VISIBLE); topic_layout.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() { @Override public void select(TextView textView, int i, int i1) { Log.d(TAG, String.format("select: text %s,i %s i1 %s ",textView.getText(),i,i1)); tab2Pos = i1; tabChanged(); } }); topic_layout1.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() { @Override public void select(TextView textView, int i, int i1) { Log.d(TAG, String.format("select: text %s,i %s i1 %s ",textView.getText(),i,i1)); tab1Pos = i1; tabChanged(); } }); topic_layout2.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() { @Override public void select(TextView textView, int i, int i1) { Log.d(TAG, String.format("select: text %s,i %s i1 %s ",textView.getText(),i,i1)); tab3Pos = i1; tabChanged(); } }); // tabChanged(); } int tmp=0; void tabChanged() { Log.d(TAG, String.format("tabChanged: to load data tmp %s" , tmp )); tmp++; /* Toast.makeText(activity, String.format( "TAB1 :{0}, TAB2 :{1}, TAB3 :{3}", mData1.get(tab1Pos).getTabTitle(), mData2.get(tab2Pos).getTabTitle(), mData3.get(tab3Pos).getTabTitle()), Toast.LENGTH_SHORT).show(); String selectedKey = mData1.get(tab1Pos).getTabTitle() +" " + mData2.get(tab2Pos).getTabTitle() +" " + mData3.get(tab3Pos).getTabTitle() ; */ if(lstSex==null || lstSex.size()==0) return; pageNo=1; String sex = lstSex.get(tab1Pos); String cate = lstNt.get(tab2Pos); String selectedKey = lstSex.get(tab1Pos) +" " + cate +" " + Constants.lstProgressType.get(tab3Pos).getName(); // lstProgress[tab3Pos] ; // Toast.makeText(activity, selectedKey, Toast.LENGTH_SHORT).show(); tvHint.setText(selectedKey); Log.d(TAG, String.format("tabChanged: to load data %s,pageno %s, tmp %s" , selectedKey,pageNo ,tmp)); if( tmp 0) { visibleItemCount = layoutManager.getChildCount(); totalItemCount = layoutManager.getItemCount(); pastVisiblesItems = layoutManager.findFirstVisibleItemPosition(); // } Log.d(TAG, String.format("onScrolled:dy %s,visibleItemCount %s,totalItemCount %s,pastVisiblesItems %s ", dy, visibleItemCount,totalItemCount,pastVisiblesItems)); //最后一个可见的ITEM lastVisibleItem=layoutManager.findLastVisibleItemPosition(); lastVisibleItem=layoutManager.findLastCompletelyVisibleItemPosition(); } }); } //----------------绑定列表 void initialBookList() { // rvPaihang.setLayoutManager(new LinearLayoutManager(activity)); // rvPaihang.setAdapter(mAdapter); } @BindView(R.id.tvHint) TextView tvHint; //------------滑动监听 @Override public void setFTag() { } @Override public void onResume() { super.onResume(); MobclickAgent.onPageStart(TAG); } @Override public void onPause(){ super.onPause(); MobclickAgent.onPageEnd(TAG); } }