├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── shanyao │ │ └── tabpagerindicatordemo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── shanyao │ │ │ └── tabpagerindicatordemo │ │ │ ├── FragmentFactory.java │ │ │ ├── ShanYaoApplication.java │ │ │ ├── activity │ │ │ ├── MainActivity.java │ │ │ ├── NoWeightExpandNoSame.java │ │ │ ├── NoWeightExpandSame.java │ │ │ ├── NoWeightNoExpandNoSame.java │ │ │ ├── NoWeightNoExpandSame.java │ │ │ ├── WeightNoExpandNoSame.java │ │ │ └── WeightNoExpandSame.java │ │ │ ├── fragment │ │ │ ├── AFragment.java │ │ │ ├── BFragment.java │ │ │ ├── CFragment.java │ │ │ ├── DFragment.java │ │ │ ├── EFragment.java │ │ │ ├── FFragment.java │ │ │ ├── GFragment.java │ │ │ ├── HFragment.java │ │ │ ├── IFragment.java │ │ │ ├── JFragment.java │ │ │ ├── KFragment.java │ │ │ ├── LFragment.java │ │ │ ├── MFragment.java │ │ │ └── NFragment.java │ │ │ └── utils │ │ │ └── CommonUtils.java │ └── res │ │ ├── layout │ │ ├── activity_main.xml │ │ └── viewpager_indicator.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── shanyao │ └── tabpagerindicatordemo │ └── ExampleUnitTest.java ├── build.gradle ├── gif ├── 1.gif ├── 2.gif ├── 3.gif ├── 4.gif ├── 5.gif └── 6.gif ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── tabpagerindictor ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── shanyao │ └── tabpagerindictor │ └── ApplicationTest.java ├── main ├── AndroidManifest.xml ├── java │ └── shanyao │ │ └── tabpagerindictor │ │ └── TabPageIndicator.java └── res │ └── values │ ├── attrs.xml │ └── strings.xml └── test └── java └── shanyao └── tabpagerindictor └── ExampleUnitTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | TabPagerIndicatorDemo -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 24 | 25 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #TabPagerIndicator 2 | 一个强大的顶部标题导航栏,支持6种不同的模式
3 | 4 | 先来看下效果,再看使用方法 5 | ####一:MODE_WEIGHT_NOEXPAND_SAME
6 | 几个标题均分宽度,不能扩展,底部导航线跟标题宽度一致
7 | 8 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/1.gif)
9 | 10 | ####二:MODE_WEIGHT_NOEXPAND_NOSAME
11 | 几个标题均分宽度,不能扩展,底部导航线跟标题宽度不一致
12 | 13 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/2.gif)
14 | 15 | ####三:MODE_NOWEIGHT_NOEXPAND_SAME
16 | 标题不均分宽度,不能扩展,底部导航线跟标题宽度一致
17 | 18 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/3.gif) 19 | 20 | ####四:MODE_NOWEIGHT_NOEXPAND_NOSAME
21 | 标题不均分宽度,不能扩展,底部导航线跟标题宽度不一致
22 | 23 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/4.gif)
24 | 25 | ####五:MODE_NOWEIGHT_EXPAND_SAME
26 | 标题不均分宽度,能扩展,底部导航线跟标题宽度一致
27 | 28 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/5.gif)
29 | 30 | ####六:MODE_NOWEIGHT_EXPAND_NOSAME
31 | 标题不均分宽度,能扩展,底部导航线跟标题宽度不一致
32 | 33 | ![](https://raw.githubusercontent.com/shanyao0/TabPagerIndicatorDemo/master/gif/6.gif)
34 | 35 | ##使用方法 36 | 一般来说这个类是ViewPager+TabPagerIndicator+Fragment来使用的
37 | 38 | ##### 1. 关联类库
39 | 首先,下载我上面的TabPagerIndicatorDemo,然后将里面的tabpagerindicator类库import Module到你的项目,并关联 40 | ##### 2. xml布局 41 | ```Java 42 | 43 | 48 | 49 | 54 | 59 | 60 | ``` 61 | ##### 3. 代码使用 62 | ```Java 63 | @Override 64 | public void onCreate(Bundle savedInstanceState) { 65 | super.onCreate(savedInstanceState); 66 | setContentView(R.layout.viewpager_indicator); 67 | indicator = (TabPageIndicator)findViewById(R.id.indicator); 68 | viewPager = (ViewPager)findViewById(R.id.viewPager); 69 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 70 | 71 | viewPager.setAdapter(adapter);// 设置adapter 72 | indicator.setViewPager(viewPager);// 绑定indicator 73 | 74 | setTabPagerIndicator(); 75 | } 76 | /** 77 | * 通过一些set方法,设置控件的属性 78 | */ 79 | private void setTabPagerIndicator() { 80 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_WEIGHT_NOEXPAND_SAME);// 设置模式,一定要先设置模式 81 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 82 | indicator.setDividerPadding(10);//设置 83 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 84 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 85 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 86 | indicator.setTextSize(16);// 设置字体大小 87 | } 88 | ``` 89 | ###常用方法说明 90 | ```Java 91 | setIndicatorMode()//设置控件的模式,上面是提到的6种模式 92 | setDividerColor()//设置两个标题之间的竖直分割线的颜色,如果不需要显示这个,设置颜色为透明即可 93 | setDividerPadding()//设置中间竖线上下的padding值 94 | setIndicatorColor()//设置底部导航线的颜色,就是上面演示图的绿色导航线 95 | setIndicatorHeight()// 设置底部导航线的高度 96 | setDividerPadding()// 设置Tab标题之间的间距 97 | setTextColorSelected()//设置tab标题选中的颜色 98 | setTextColor()//设置tab标题未被选中的颜色 99 | setTextSize()//设置字体的大小 100 | setUnderlineColor()// 设置最下面一条的横线的颜色 101 | setUnderlineHeight()//设置最下面一条的横线的高度 102 | setScrollOffset()// 这个方法是当选择MODE_NOWEIGHT_EXPAND_NOSAME和MODE_NOWEIGHT_EXPAND_SAME这两个模式的时候有作用 103 | 具体作用大家,可以下载Demo自己试一试 104 | 105 | ``` 106 | ######可能还有一些不是常用的方法,大家可以自己下载Demo去试试 107 | 108 | ###我的博客 109 | [我的博客](http://blog.csdn.net/shan_yao) 110 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.3" 6 | 7 | defaultConfig { 8 | applicationId "shanyao.tabpagerindicatordemo" 9 | minSdkVersion 15 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:23.2.1' 26 | compile project(':tabpagerindictor') 27 | } 28 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\program\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/shanyao/tabpagerindicatordemo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/FragmentFactory.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo; 2 | 3 | import android.support.v4.app.Fragment; 4 | 5 | import shanyao.tabpagerindicatordemo.fragment.AFragment; 6 | import shanyao.tabpagerindicatordemo.fragment.BFragment; 7 | import shanyao.tabpagerindicatordemo.fragment.CFragment; 8 | import shanyao.tabpagerindicatordemo.fragment.DFragment; 9 | import shanyao.tabpagerindicatordemo.fragment.EFragment; 10 | import shanyao.tabpagerindicatordemo.fragment.FFragment; 11 | import shanyao.tabpagerindicatordemo.fragment.GFragment; 12 | import shanyao.tabpagerindicatordemo.fragment.HFragment; 13 | import shanyao.tabpagerindicatordemo.fragment.IFragment; 14 | import shanyao.tabpagerindicatordemo.fragment.JFragment; 15 | import shanyao.tabpagerindicatordemo.fragment.KFragment; 16 | import shanyao.tabpagerindicatordemo.fragment.LFragment; 17 | import shanyao.tabpagerindicatordemo.fragment.MFragment; 18 | import shanyao.tabpagerindicatordemo.fragment.NFragment; 19 | 20 | 21 | /** 22 | * Created by shan_yao on 2016/6/17. 23 | */ 24 | public class FragmentFactory { 25 | public static Fragment createForNoExpand(int position) { 26 | Fragment fragment = null; 27 | switch (position) { 28 | case 0: 29 | fragment = new AFragment(); 30 | break; 31 | case 1: 32 | fragment = new BFragment(); 33 | break; 34 | case 2: 35 | fragment = new CFragment(); 36 | break; 37 | } 38 | return fragment; 39 | } 40 | 41 | public static Fragment createForExpand(int position) { 42 | Fragment fragment = null; 43 | switch (position) { 44 | case 0: 45 | fragment = new DFragment(); 46 | break; 47 | case 1: 48 | fragment = new EFragment(); 49 | break; 50 | case 2: 51 | fragment = new FFragment(); 52 | break; 53 | case 3: 54 | fragment = new GFragment(); 55 | break; 56 | case 4: 57 | fragment = new HFragment(); 58 | break; 59 | case 5: 60 | fragment = new IFragment(); 61 | break; 62 | case 6: 63 | fragment = new JFragment(); 64 | break; 65 | case 7: 66 | fragment = new KFragment(); 67 | break; 68 | case 8: 69 | fragment = new LFragment(); 70 | break; 71 | case 9: 72 | fragment = new MFragment(); 73 | break; 74 | case 10: 75 | fragment = new NFragment(); 76 | break; 77 | } 78 | return fragment; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/ShanYaoApplication.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | 6 | public class ShanYaoApplication extends Application { 7 | private static Context mContext; 8 | @Override 9 | public void onCreate() { 10 | super.onCreate(); 11 | mContext = this; 12 | } 13 | 14 | /** 15 | * 获取全局的context 16 | */ 17 | public static Context getContext() { 18 | return mContext; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/MainActivity.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.View; 7 | 8 | import shanyao.tabpagerindicatordemo.R; 9 | 10 | public class MainActivity extends AppCompatActivity implements View.OnClickListener { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_main); 16 | findViewById(R.id.MODE_WEIGHT_NOEXPAND_SAME).setOnClickListener(this); 17 | findViewById(R.id.MODE_WEIGHT_NOEXPAND_NOSAME).setOnClickListener(this); 18 | findViewById(R.id.MODE_NOWEIGHT_NOEXPAND_SAME).setOnClickListener(this); 19 | findViewById(R.id.MODE_NOWEIGHT_NOEXPAND_NOSAME).setOnClickListener(this); 20 | findViewById(R.id.MODE_NOWEIGHT_EXPAND_SAME).setOnClickListener(this); 21 | findViewById(R.id.MODE_NOWEIGHT_EXPAND_NOSAME).setOnClickListener(this); 22 | } 23 | 24 | @Override 25 | public void onClick(View v) { 26 | switch (v.getId()) { 27 | case R.id.MODE_WEIGHT_NOEXPAND_SAME: 28 | startActivity(new Intent(MainActivity.this, WeightNoExpandSame.class)); 29 | break; 30 | case R.id.MODE_WEIGHT_NOEXPAND_NOSAME: 31 | startActivity(new Intent(MainActivity.this, WeightNoExpandNoSame.class)); 32 | break; 33 | case R.id.MODE_NOWEIGHT_NOEXPAND_SAME: 34 | startActivity(new Intent(MainActivity.this, NoWeightNoExpandSame.class)); 35 | break; 36 | case R.id.MODE_NOWEIGHT_NOEXPAND_NOSAME: 37 | startActivity(new Intent(MainActivity.this, NoWeightNoExpandNoSame.class)); 38 | break; 39 | case R.id.MODE_NOWEIGHT_EXPAND_SAME: 40 | startActivity(new Intent(MainActivity.this, NoWeightExpandSame.class)); 41 | break; 42 | case R.id.MODE_NOWEIGHT_EXPAND_NOSAME: 43 | startActivity(new Intent(MainActivity.this, NoWeightExpandNoSame.class)); 44 | break; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/NoWeightExpandNoSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentPagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class NoWeightExpandNoSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator)findViewById(R.id.indicator); 30 | viewPager = (ViewPager)findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_NOWEIGHT_EXPAND_NOSAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentPagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/NoWeightExpandSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentStatePagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class NoWeightExpandSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator) findViewById(R.id.indicator); 30 | viewPager = (ViewPager) findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_NOWEIGHT_EXPAND_SAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentStatePagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/NoWeightNoExpandNoSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentStatePagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class NoWeightNoExpandNoSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator) findViewById(R.id.indicator); 30 | viewPager = (ViewPager) findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_NOWEIGHT_NOEXPAND_NOSAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentStatePagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.no_expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForNoExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/NoWeightNoExpandSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentStatePagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class NoWeightNoExpandSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator) findViewById(R.id.indicator); 30 | viewPager = (ViewPager) findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_NOWEIGHT_NOEXPAND_SAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentStatePagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.no_expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForNoExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/WeightNoExpandNoSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentStatePagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class WeightNoExpandNoSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator)findViewById(R.id.indicator); 30 | viewPager = (ViewPager)findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_WEIGHT_NOEXPAND_NOSAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentStatePagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.no_expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForNoExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/activity/WeightNoExpandSame.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.activity; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.support.v4.app.FragmentManager; 8 | import android.support.v4.app.FragmentPagerAdapter; 9 | import android.support.v4.view.ViewPager; 10 | 11 | import shanyao.tabpagerindicatordemo.R; 12 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 13 | import shanyao.tabpagerindicatordemo.FragmentFactory; 14 | import shanyao.tabpagerindicatordemo.utils.CommonUtils; 15 | import shanyao.tabpagerindictor.TabPageIndicator; 16 | 17 | /** 18 | * Created by HuaChing904 on 2016/6/23. 19 | */ 20 | public class WeightNoExpandSame extends FragmentActivity { 21 | 22 | private TabPageIndicator indicator; 23 | private ViewPager viewPager; 24 | 25 | @Override 26 | public void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.viewpager_indicator); 29 | indicator = (TabPageIndicator)findViewById(R.id.indicator); 30 | viewPager = (ViewPager)findViewById(R.id.viewPager); 31 | BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager()); 32 | viewPager.setAdapter(adapter); 33 | indicator.setViewPager(viewPager); 34 | setTabPagerIndicator(); 35 | } 36 | 37 | private void setTabPagerIndicator() { 38 | indicator.setIndicatorMode(TabPageIndicator.IndicatorMode.MODE_WEIGHT_NOEXPAND_SAME);// 设置模式,一定要先设置模式 39 | indicator.setDividerColor(Color.parseColor("#00bbcf"));// 设置分割线的颜色 40 | indicator.setDividerPadding(CommonUtils.dip2px(ShanYaoApplication.getContext(), 10)); 41 | indicator.setIndicatorColor(Color.parseColor("#43A44b"));// 设置底部导航线的颜色 42 | indicator.setTextColorSelected(Color.parseColor("#43A44b"));// 设置tab标题选中的颜色 43 | indicator.setTextColor(Color.parseColor("#797979"));// 设置tab标题未被选中的颜色 44 | indicator.setTextSize(CommonUtils.sp2px(ShanYaoApplication.getContext(), 16));// 设置字体大小 45 | } 46 | 47 | class BasePagerAdapter extends FragmentPagerAdapter { 48 | String[] titles; 49 | 50 | public BasePagerAdapter(FragmentManager fm) { 51 | super(fm); 52 | this.titles = CommonUtils.getStringArray(R.array.no_expand_titles); 53 | } 54 | 55 | @Override 56 | public Fragment getItem(int position) { 57 | return FragmentFactory.createForNoExpand(position); 58 | } 59 | 60 | @Override 61 | public int getCount() { 62 | return titles.length; 63 | } 64 | 65 | @Override 66 | public CharSequence getPageTitle(int position) { 67 | return titles[position]; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/AFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shaoyao on 2016/6/17. 15 | */ 16 | public class AFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("全部订单"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/BFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class BFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("当前订单"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/CFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class CFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("历史订单"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/DFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class DFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("头条"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/EFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class EFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("娱乐"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/FFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class FFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("体育"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/GFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class GFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("网易号"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/HFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class HFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("北京"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/IFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class IFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("财经"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/JFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class JFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("科技"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/KFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class KFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("汽车"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/LFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class LFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("时尚"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/MFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class MFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("图片"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/fragment/NFragment.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.fragment; 2 | 3 | import android.graphics.Color; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.Gravity; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | /** 14 | * Created by shanyao on 2016/6/17. 15 | */ 16 | public class NFragment extends Fragment { 17 | @Nullable 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 | TextView view = new TextView(getActivity()); 21 | view.setGravity(Gravity.CENTER); 22 | view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 23 | view.setText("跟帖"); 24 | view.setTextColor(Color.RED); 25 | view.setTextSize(50); 26 | return view; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/shanyao/tabpagerindicatordemo/utils/CommonUtils.java: -------------------------------------------------------------------------------- 1 | package shanyao.tabpagerindicatordemo.utils; 2 | 3 | import android.content.Context; 4 | import android.content.res.Resources; 5 | import android.graphics.drawable.Drawable; 6 | 7 | import shanyao.tabpagerindicatordemo.ShanYaoApplication; 8 | 9 | 10 | public class CommonUtils { 11 | /** 12 | * dip转化成px 13 | */ 14 | public static int dip2px(Context context, float dpValue) { 15 | final float scale = context.getResources().getDisplayMetrics().density; 16 | return (int) (dpValue * scale + 0.5f); 17 | } 18 | 19 | /** 20 | * px转化成dip 21 | */ 22 | public static int px2dip(Context context, float pxValue) { 23 | final float scale = context.getResources().getDisplayMetrics().density; 24 | return (int) (pxValue / scale + 0.5f); 25 | } 26 | 27 | /** 28 | * px转化成sp 29 | */ 30 | public static int px2sp(Context context, float pxValue) { 31 | final float scale = context.getResources().getDisplayMetrics().density; 32 | return (int) (pxValue / scale + 0.5f); 33 | } 34 | 35 | /** 36 | * sp转化成px 37 | */ 38 | public static int sp2px(Context context, float spValue) { 39 | final float scale = context.getResources().getDisplayMetrics().density; 40 | return (int) (spValue * scale + 0.5f); 41 | } 42 | 43 | /** 44 | * 获取Resource对象 45 | */ 46 | public static Resources getResources() { 47 | return ShanYaoApplication.getContext().getResources(); 48 | } 49 | 50 | /** 51 | * 获取Drawable资源 52 | */ 53 | public static Drawable getDrawable(int resId) { 54 | return getResources().getDrawable(resId); 55 | } 56 | 57 | /** 58 | * 获取字符串资源 59 | */ 60 | public static String getString(int resId) { 61 | return getResources().getString(resId); 62 | } 63 | 64 | /** 65 | * 获取color资源 66 | */ 67 | public static int getColor(int resId) { 68 | return getResources().getColor(resId); 69 | } 70 | 71 | /** 72 | * 获取dimens资源 73 | */ 74 | public static float getDimens(int resId) { 75 | return getResources().getDimension(resId); 76 | } 77 | 78 | /** 79 | * 获取字符串数组资源 80 | */ 81 | public static String[] getStringArray(int resId) { 82 | return getResources().getStringArray(resId); 83 | } 84 | } 85 | 86 | 87 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |