203 lines
5.9 KiB
Plaintext
203 lines
5.9 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);
|
||
if(mFragments.size()>0) {
|
||
tabLayout.setTabSelected(0);
|
||
// 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);
|
||
}
|
||
}
|