lmw
2023-03-11 4df5bb59e5fe9f9d140e5610f7772dd8a05a28d4
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
package cn.sinata.xldutils.activitys;
 
import android.os.Bundle;
 
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
 
import com.google.android.material.tabs.TabLayout;
 
import cn.sinata.xldutils.R;
 
public abstract class TabLayoutActivity extends TitleActivity {
 
    private ViewPager mViewPager;
    private TabLayout mTabLayout;
    protected abstract Fragment getFragment(int position);
    protected abstract String[] getTitles();
    private String[] titles ;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_activity_tab_layout);
        initView();
    }
 
    protected void initView() {
 
        mViewPager = bind(R.id.mViewPager);
        mTabLayout = bind(R.id.mTabLayout);
 
        titles = getTitles();
        if (titles!=null && titles.length>0){
            mViewPager.setAdapter(pagerAdapter);
            mTabLayout.setupWithViewPager(mViewPager);
            mViewPager.setOffscreenPageLimit(Math.min(3,titles.length));
        }
    }
 
    private FragmentStatePagerAdapter pagerAdapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {
 
        @Override
        public Fragment getItem(int position) {
            return getFragment(position);
        }
 
        @Override
        public int getCount() {
            return titles.length;
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }
    };
 
    protected void setTabMode(int tabMode){
        mTabLayout.setTabMode(tabMode);
    }
 
    public void resetTitles(){
 
    }
 
}