pda/zhuike/.svn/pristine/c1/c12a64f7fbd7de45e698e41632d...

198 lines
5.8 KiB
Plaintext
Raw Normal View History

2024-02-06 22:23:29 +08:00
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);
}
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);
}
}