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