package cn.com.basic.face.base;
|
|
import android.content.Context;
|
import android.support.design.widget.TabLayout;
|
import android.support.v4.app.Fragment;
|
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentPagerAdapter;
|
import android.support.v4.view.ViewPager;
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.bsk.zhangbo.demoforbsk.R;
|
import cn.com.basic.face.fragment.SurveillanceFragment;
|
import cn.com.basic.face.util.TabNameUtil;
|
import cn.com.basic.face.fragment.AttendanceFragment;
|
import cn.com.basic.face.fragment.CheckInFragment;
|
import cn.com.basic.face.fragment.DeviceFragment;
|
import cn.com.basic.face.fragment.PhoneCallFragment;
|
import cn.com.basic.face.fragment.RegisterFragment;
|
import cn.com.basic.face.fragment.VisitFragment;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
public class MainActivity extends BaseActivity {
|
|
private static MainActivity instance;
|
|
private static TabLayout mTabLayout;
|
private static ViewPager mViewPager;
|
|
public static void selectPage(int pageNum) {
|
mTabLayout.getTabAt(pageNum).select();
|
}
|
|
@Override
|
public int getLayoutId() {
|
return R.layout.activity_main;
|
}
|
|
@Override
|
public void initViews(Bundle savedInstanceState) {
|
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
|
mViewPager = (ViewPager) findViewById(R.id.viewpager);
|
mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
|
instance = this;
|
}
|
|
@Override
|
public void initData() {
|
List<String> tabNamesList = Arrays.asList(TabNameUtil.tabNames);
|
int[] tabIcons = TabNameUtil.tabIcons;
|
MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),MainActivity.this);
|
myFragmentPagerAdapter.addFragment(SurveillanceFragment.getInstance(), tabNamesList.get(0),tabIcons[0]);
|
myFragmentPagerAdapter.addFragment(RegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
|
myFragmentPagerAdapter.addFragment(CheckInFragment.getInstance(), tabNamesList.get(2),tabIcons[2]);
|
myFragmentPagerAdapter.addFragment(PhoneCallFragment.getInstance(), tabNamesList.get(3),tabIcons[3]);
|
myFragmentPagerAdapter.addFragment(VisitFragment.getInstance(), tabNamesList.get(4),tabIcons[4]);
|
myFragmentPagerAdapter.addFragment(AttendanceFragment.getInstance(), tabNamesList.get(5),tabIcons[5]);
|
myFragmentPagerAdapter.addFragment(DeviceFragment.getInstance(), tabNamesList.get(6),tabIcons[6]);
|
mViewPager.setAdapter(myFragmentPagerAdapter);
|
mViewPager.setOffscreenPageLimit(6);//viewpager缓存个数
|
mTabLayout.setupWithViewPager(mViewPager);
|
mTabLayout.setTabMode(TabLayout.MODE_FIXED);
|
for (int i = 0; i < mTabLayout.getTabCount(); i++) {
|
TabLayout.Tab tab = mTabLayout.getTabAt(i);
|
tab.setCustomView(myFragmentPagerAdapter.getTabView(i));
|
if (i == 0) {
|
tab.getCustomView().setSelected(true);
|
}
|
}
|
|
|
}
|
|
public static MainActivity getInstance() {
|
return instance;
|
}
|
|
public static class MyFragmentPagerAdapter extends FragmentPagerAdapter {
|
|
private final List<Fragment> mFragments = new ArrayList<>();
|
private final List<String> mFragmentTitles = new ArrayList<>();
|
private final List<Integer> mFragmentIcons = new ArrayList<>();
|
private Context context;
|
public MyFragmentPagerAdapter(FragmentManager fm, Context context) {
|
super(fm);
|
this.context = context;
|
}
|
|
public void addFragment(Fragment fragment, String title,int drawable) {
|
mFragments.add(fragment);
|
mFragmentTitles.add(title);
|
mFragmentIcons.add(drawable);
|
}
|
|
@Override
|
public Fragment getItem(int position) {
|
return mFragments.get(position);
|
}
|
|
@Override
|
public int getCount() {
|
return mFragments.size();
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return null;
|
}
|
|
public View getTabView(int position){
|
View view = LayoutInflater.from(context).inflate(R.layout.activity_main_tab,null);
|
TextView mTvTitle = (TextView) view.findViewById(R.id.tab_item_title);
|
mTvTitle.setText(mFragmentTitles.get(position));
|
ImageView mImgIcon = (ImageView) view.findViewById(R.id.tab_item_icon);
|
mImgIcon.setImageResource(mFragmentIcons.get(position));
|
return view;
|
}
|
|
}
|
|
}
|