riku
2021-02-25 e102578ebfc95c27aeb13dce13fb82af53a2bead
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
126
127
128
129
130
131
132
133
134
package cn.flightfeather.thirdapp.dataanalysis;
 
import android.content.Intent;
import android.os.Bundle;
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.content.ContextCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.widget.TextView;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
 
import butterknife.BindView;
import cn.flightfeather.thirdapp.R;
import cn.flightfeather.thirdapp.bean.vo.TaskVo;
 
/**
 * 2018.11.09
 * @author riku
 * 顶层任务详细信息tab切换页面
 */
public class AnalysisTabActivity extends AppCompatActivity {
 
    @BindView(R.id.tabLayout)
    TabLayout tabLayout;//标题tab
 
    @BindView(R.id.viewPager)
    ViewPager viewPager;//内容页面
 
    @BindView(R.id.toolbar)
    Toolbar toolbar;//工具栏
 
    private List<String> tabIndicators;//tab标题
    private List<Fragment> tabFragments;//内容
    private ContentPagerAdapter contentAdapter;//viewPager内容页面适配器
 
    public final static String ARG_PARAM1 = "taskProgressVo";
    private TaskVo taskProgressVo;//需要传入的顶层任务对象
 
    private String activityTitle = "任务分析";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_analysis_tab);
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        taskProgressVo = (TaskVo) intent.getSerializableExtra(ARG_PARAM1);
        initToolbar();
        initTab();
        initViewPager();
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
 
    //<editor-fold desc="初始化toolbar">
    @BindView(R.id.toolbar_secondTitle)
    TextView secondTitle;
 
    private void initToolbar() {
        setSupportActionBar(toolbar);
        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        secondTitle.setText(activityTitle);
    }
    //</editor-fold>
 
    //<editor-fold desc="初始化tab栏">
    private void initTab(){
        tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
        tabLayout.setTabTextColors(ContextCompat.getColor(this, R.color.gray_btn_bg_color), ContextCompat.getColor(this, R.color.white));
        tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.white));
        ViewCompat.setElevation(tabLayout, 10);
        tabLayout.setupWithViewPager(viewPager);//将tab和viewPager绑定
    }
    //</editor-fold>
 
    //<editor-fold desc="初始化内容界面viewpager">
    private void initViewPager(){
        tabIndicators = new ArrayList<>();
        tabIndicators.add("详细进度");
        tabIndicators.add("问题分布");
        tabIndicators.add("排名");
 
        tabFragments = new ArrayList<>();
        tabFragments.add(ProgressDetailFragment.newInstance(taskProgressVo));
        tabFragments.add(new AnysisProblemFragment());
//        tabFragments.add(new AnysisRankFragment());
 
        contentAdapter = new ContentPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(contentAdapter);
    }
    //</editor-fold>
 
    /**
     * viewPager适配器
     */
    class ContentPagerAdapter extends FragmentPagerAdapter {
 
        public ContentPagerAdapter(FragmentManager fm) {
            super(fm);
        }
 
        @Override
        public Fragment getItem(int position) {
            return tabFragments.get(position);
        }
 
        @Override
        public int getCount() {
            return tabIndicators.size();
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            return tabIndicators.get(position);
        }
    }
}