221 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			221 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| package com.novelbook.android;
 | ||
| 
 | ||
| import android.content.Intent;
 | ||
| import android.support.v4.app.Fragment;
 | ||
| import android.support.v4.app.FragmentPagerAdapter;
 | ||
| import android.support.v4.view.ViewPager;
 | ||
| import android.support.v7.widget.Toolbar;
 | ||
| import android.util.Log;
 | ||
| import android.view.Menu;
 | ||
| import android.view.MenuItem;
 | ||
| import android.view.View;
 | ||
| import android.widget.TextView;
 | ||
| 
 | ||
| import com.ixiaow.multilayout.MultiLayout;
 | ||
| import com.novelbook.android.Fragments.BasicFragment;
 | ||
| import com.novelbook.android.Fragments.Fragment_booklist;
 | ||
| import com.novelbook.android.Fragments.Fragment_shudan_list;
 | ||
| import com.flyco.tablayout.SlidingTabLayout;
 | ||
| import com.novelbook.android.bean.ProgressType;
 | ||
| import com.novelbook.android.utils.Constants;
 | ||
| 
 | ||
| import java.util.ArrayList;
 | ||
| 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 Activity_cate_books extends Activity_base {
 | ||
|     public static  final String TAG=Activity_cate_books.class.getSimpleName();
 | ||
|     public static String EXTRNAME="catename";
 | ||
|     @BindView(R.id.viewpager)
 | ||
|     ViewPager mViewpager;
 | ||
|     @BindView(R.id.tab_layout)
 | ||
|     SlidingTabLayout tabLayout;
 | ||
| 
 | ||
|     @BindView(R.id.topic_layout)
 | ||
|     MultiLayout topic_layout;
 | ||
| 
 | ||
|     String cate="";
 | ||
|     private ArrayList<BasicFragment> mFragments;
 | ||
|     ArrayList<View> mList;
 | ||
|     String[] mTitle;
 | ||
| 
 | ||
|     private int tabPos;
 | ||
| 
 | ||
|     @Override
 | ||
|     public int getLayoutRes() {
 | ||
|         return R.layout.activity_cate_books;
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     protected void initViews() {
 | ||
|         creatToolbar();
 | ||
|         initTabs2();
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     @Override
 | ||
|     protected void setTitle() {
 | ||
|         cate = getIntent().getStringExtra(EXTRNAME);
 | ||
|         this.setTitle(cate);
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     protected void initData() {
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     @Override
 | ||
|     public void fillData() {
 | ||
| 
 | ||
|     }
 | ||
| //---------tabs-------------
 | ||
| 
 | ||
|     void initTabs() {
 | ||
|         List<String> lstType = new ArrayList<String>()  ;//Arrays.asList(lstProgress);
 | ||
|         for(ProgressType progressType : Constants.lstProgressType){
 | ||
|             lstType.add(progressType.getName());
 | ||
|         }
 | ||
|         topic_layout.initTabNames(lstType) ;
 | ||
|         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));
 | ||
|                  tabPos = i1;
 | ||
|                 tabChanged();
 | ||
|             }
 | ||
|         });
 | ||
| 
 | ||
| 
 | ||
|     }
 | ||
|     void initTabs2() {
 | ||
| 
 | ||
|         if(Constants.lstProgressType==null){
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         if (mFragments == null ) {
 | ||
| 
 | ||
|             mFragments = new ArrayList<BasicFragment>();
 | ||
|         }
 | ||
|         mFragments.clear();
 | ||
| 
 | ||
|         for(ProgressType progressType : Constants.lstProgressType) {
 | ||
|             mFragments.add(Fragment_booklist.newInstance(cate, progressType.getId()));
 | ||
|         }
 | ||
| 
 | ||
|         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
 | ||
|         FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
 | ||
|             @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 Constants.lstProgressType.get(position).getName();
 | ||
|             }
 | ||
|         };
 | ||
|         mViewpager.setAdapter(mAdapter);
 | ||
|         mViewpager.setOffscreenPageLimit( Constants.lstProgressType.size()+1);
 | ||
|        tabLayout.setViewPager(mViewpager);
 | ||
|         // tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
 | ||
|         mViewpager.setCurrentItem(0);
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|         int tmp=0;
 | ||
|         private void tabChanged() {
 | ||
| 
 | ||
|             Log.d(TAG, String.format("tabChanged: to load data tmp %s" , tmp ));
 | ||
|             tmp++;
 | ||
| 
 | ||
|             if(lstSex==null) return;
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|             if (mFragments == null ) {
 | ||
| 
 | ||
|                 mFragments = new ArrayList<BasicFragment>();
 | ||
|             }
 | ||
|             mFragments.clear();
 | ||
| 
 | ||
|             mFragments.add(Fragment_booklist.newInstance(cate, Constants.lstProgressType.get(tabPos).getId()));
 | ||
| 
 | ||
| 
 | ||
|                 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
 | ||
|             FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
 | ||
|                 @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];
 | ||
|                 }
 | ||
|             };
 | ||
|             mViewpager.setAdapter(mAdapter);
 | ||
|             mViewpager.setOffscreenPageLimit(2);
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|             // tabLayout.setViewPager(mViewpager);
 | ||
|             // tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
 | ||
|             mViewpager.setCurrentItem(0);
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|     @Override
 | ||
|     public boolean onCreateOptionsMenu(Menu menu) {
 | ||
|         // Inflate the menu; this adds items to the action bar if it is present.
 | ||
|         getMenuInflater().inflate(R.menu.booksearch, menu);
 | ||
| 
 | ||
|         return true;
 | ||
|     }
 | ||
|     private void creatToolbar() {
 | ||
| 
 | ||
|         setSupportActionBar(toolbar);
 | ||
| 
 | ||
| 
 | ||
|         toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
 | ||
|             @Override
 | ||
|             public boolean onMenuItemClick(MenuItem item) {
 | ||
|                 int menuItemId = item.getItemId();
 | ||
|                 if(menuItemId==R.id.menuSearch){
 | ||
|                     Intent intent = new Intent(Activity_cate_books.this, Activity_Search.class);
 | ||
|                     startActivity(intent);
 | ||
| 
 | ||
|                 }
 | ||
|                 return true;
 | ||
|             }
 | ||
|         });
 | ||
|     }
 | ||
| }
 |