在AndroidStudio中使用ViewPagerIndicator

ViewPagerIndicator是安卓大神JakeWharton的作品,页签指示器,项目中经常会遇到,其Sample的页面如下图所示:


在AndroidStudio中使用ViewPagerIndicator
ViewPagerIndicator效果图

星座项目中也需要用到这个开源框架,直接添加依赖

在项目的gradle中添加这一行代码:

allprojects {       

       repositories {         

                   ...            

                   maven { url "https://jitpack.io" }        

       }    }


在module 的 gradle中加入这一行代码:

dependencies {           

               compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'   

 }

这种方式更改样式时,在style.xml文件中添加一个style继承Theme.PageIndicatorDefaults即可


本文主要是把ViewPagerIndicator作为Library导入项目中,修改样式时修改其源码。

这篇文章主要是记录导入和修改样式,关于其使用个人认为不需要多写,主要就是在布局中添加,在代码中和ViewPager绑定,在PagerAdapter中添加方法:getPageTitle()。

需要注意的时,有时为了避免报错,可以先把ViewPagerIndicator的Visibity属性设置Gone,当数据加载完成再设置成可见。

作为Library将ViewPager添加到项目中

1.进入ViewPagerIndicator官网,下载zip包

http://viewpagerindicator.com/

解压后,将Library导入到Android Studio中。

导入步骤:

1.iimport Module


在AndroidStudio中使用ViewPagerIndicator
1

2.找到library的地址,将其重命名避免和别的Library冲突,一路next下去即可。


在AndroidStudio中使用ViewPagerIndicator
2

3.

在AndroidStudio中使用ViewPagerIndicator
3

4.将ViewPagerIndicator添加到依赖

在AndroidStudio中使用ViewPagerIndicator
4

5.在要添加ViewPagerIndicator的页面Fragment、View、Activity中添加主题,如果是fragment或view则添加到其依附的Activity中。

android:theme="@style/Theme.PageIndicatorDefaults"


在AndroidStudio中使用ViewPagerIndicator
5

6.更改主题样式:

其中@drawable/vpi__tab_indicator是页签的背景图片

@style/TextAppearance.TabPageIndicator是页签字体颜色

在AndroidStudio中使用ViewPagerIndicator
6

7.更改@drawable/vpi__tab_indicator页签背景


在AndroidStudio中使用ViewPagerIndicator

其中@drawable/vpi__tab_unselected_holo和@drawable/vpi__tab_selected_holo是两张.9图效果如下:可以将这两个更改成自己要的颜色


在AndroidStudio中使用ViewPagerIndicator
未选中


在AndroidStudio中使用ViewPagerIndicator
选中 33B5E5

7.更改页签字体颜色,这里我设置成未选中为灰色,选中为蓝色


在AndroidStudio中使用ViewPagerIndicator

其中@color/vpi__dark_theme是字体颜色selector,如下:


在AndroidStudio中使用ViewPagerIndicator

这是我已经改好的字体颜色,选中时蓝色,未选中时灰色。

8.更改主题样式,将主题样式的parent更改成parent="android:Theme.Light"即可

如图:


在AndroidStudio中使用ViewPagerIndicator