xuxiuxi
2017-04-06 80d4bbd17d0dca09f6c27686d4060ecd0a17f0c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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.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.newInstance(), 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;
        }
 
    }
 
}