pda/zhuike/.svn/pristine/34/34a8f4af2daed408c53324ab28e...

203 lines
5.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}