Android-ViewPagerIndicator简单集成

现在很多的应用页面都是由一个个的TAB组成的,我们可以用布局加事件监听实现tab ,只是这样的控制非常麻烦,而且有很多的开源项目可以实现这样的功能,我们今天就介绍一下ViewPagerIndicator,这个项目就是可以实现这种效果。

首先下载依赖项目

https://github.com/JakeWharton/Android-ViewPagerIndicator

这个页面上有集成到自己项目的方式,大致就是:

1、将该项目设为自己项目的依赖项目。

2、在相应窗口的布局文件中引入TabPageIndicator,在Android-ViewPagerIndicator项目中有很多的tab的样式,它们对应不同的类。

一般我们都是将Android-ViewPagerIndicator与viewpager组合使用,当我们切换tab的时候下面的viewpager也一起切换。

  1. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. android:orientation="vertical"
  5. >
  6. <com.viewpagerindicator.TabPageIndicator
  7. android:id="@+id/indicator"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"/>
  10. <android.support.v4.view.ViewPager
  11. android:id="@+id/pager"
  12. android:layout_width="fill_parent"
  13. android:layout_height="0dp"
  14. android:layout_weight="1"/>
  15. </LinearLayout>

3、然后在窗口Activity或者Fragment内,我们获取该TabPageIndicator和ViewPager,并将它们关联起来。

  1. pager=(ViewPager)findViewById(R.id.pager);
  2. indicator=(TabPageIndicator)findViewById(R.id.indicator);
  3. indicator.setViewPager(pager);//关联

4、改变tab的样式,我们这边只看TabPageIndicator的样式修改,其他基本类似。我们进入TabPageIndicator的源码在构造函数。

  1. publicTabPageIndicator(Contextcontext,AttributeSetattrs){
  2. super(context,attrs);
  3. setHorizontalScrollBarEnabled(false);
  4. mTabLayout=newIcsLinearLayout(context,R.attr.vpiTabPageIndicatorStyle);
  5. addView(mTabLayout,newViewGroup.LayoutParams(WRAP_CONTENT,MATCH_PARENT));
  6. }

我们可以看出TabPageIndicator使用的是vpiTabPageIndicatorStyle样式。我们可以在依赖项目中看到系统自带的样式,在依赖项目的values/vpi_styles.xml文件中,这里面定义了所有tab类型的样式。

  1. <stylename="Widget.TabPageIndicator"parent="Widget">
  2. <itemname="android:gravity">center</item>
  3. <itemname="android:background">@drawable/vpi__tab_indicator</item>
  4. <itemname="android:paddingLeft">22dip</item>
  5. <itemname="android:paddingRight">22dip</item>
  6. <itemname="android:paddingTop">12dp</item>
  7. <itemname="android:paddingBottom">12dp</item>
  8. <itemname="android:textAppearance">@style/TextAppearance.TabPageIndicator</item>
  9. <itemname="android:textSize">12sp</item>
  10. <itemname="android:maxLines">1</item>
  11. </style>

我们可以根据自己的需要继承这个样式并修改。

到这里基本就OK了。Android-ViewPagerIndicator的集成非常简单的。

Android-ViewPagerIndicator可以与ActionBarSherlock合成开发的。非常方便


最后附上我的Viewpager适配器的类

  1. privateclassMyViewPagerAdapterextendsFragmentPagerAdapter{
  2. privateList<SelectItem>mList=newArrayList<SelectItem>();
  3. publicvoidsetSelects(List<SelectItem>list){
  4. this.mList=list;
  5. }
  6. publicMyViewPagerAdapter(FragmentManagerfm){
  7. super(fm);
  8. }
  9. @Override
  10. publicFragmentgetItem(intposition){
  11. returnmList.get(position).fragment;
  12. }
  13. @Override
  14. publicCharSequencegetPageTitle(intposition){
  15. returnmList.get(position).desc;
  16. }
  17. @Override
  18. publicintgetCount(){
  19. returnmList.size();
  20. }
  21. }

猜你喜欢

转载自miaozhenzhong.iteye.com/blog/2328402