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