Android-ViewPagerIndicator简单集成

如今不少的应用页面都是由一个个的TAB组成的,咱们能够用布局加事件监听实现tab ,只是这样的控制很是麻烦,并且有不少的开源项目能够实现这样的功能,咱们今天就介绍一下ViewPagerIndicator,这个项目就是能够实现这种效果。html


首先下载依赖项目java

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

 

这个页面上有集成到本身项目的方式,大体就是:git

一、将该项目设为本身项目的依赖项目。github

二、在相应窗口的布局文件中引入TabPageIndicator,在Android-ViewPagerIndicator项目中有不少的tab的样式,它们对应不一样的类。ide

通常咱们都是将Android-ViewPagerIndicator与viewpager组合使用,当咱们切换tab的时候下面的viewpager也一块儿切换。
  1. <LinearLayout xmlns: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.   
  11.     <android.support.v4.view.ViewPager  
  12.         android:id="@+id/pager"  
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="0dp"  
  15.         android:layout_weight="1" />  
  16. </LinearLayout>  

三、而后在窗口Activity或者Fragment内,咱们获取该TabPageIndicator和ViewPager,并将它们关联起来。函数

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

四、改变tab的样式,咱们这边只看TabPageIndicator的样式修改,其余基本相似。咱们进入TabPageIndicator的源码在构造函数。布局

  1. public TabPageIndicator(Context context, AttributeSet attrs) {  
  2.                             super(context, attrs);  
  3.     setHorizontalScrollBarEnabled(false);  
  4.     mTabLayout = new IcsLinearLayout(context, R.attr.vpiTabPageIndicatorStyle);  
  5.     addView(mTabLayout, new ViewGroup.LayoutParams(WRAP_CONTENT, MATCH_PARENT));  
  6. }  

咱们能够看出TabPageIndicator使用的是vpiTabPageIndicatorStyle样式。咱们能够在依赖项目中看到系统自带的样式,在依赖项目的values/vpi_styles.xml文件中,这里面定义了全部tab类型的样式。this

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

咱们能够根据本身的须要继承这个样式并修改。spa

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

 

Android-ViewPagerIndicator能够与ActionBarSherlock合成开发的。很是方便


最后附上个人Viewpager适配器的类
  1. private class MyViewPagerAdapter extends FragmentPagerAdapter {  
  2.   
  3.         private List<SelectItem> mList = new ArrayList<SelectItem>();  
  4.   
  5.         public void setSelects(List<SelectItem> list) {  
  6.             this.mList = list;  
  7.         }  
  8.   
  9.         public MyViewPagerAdapter(FragmentManager fm) {  
  10.             super(fm);  
  11.         }  
  12.   
  13.         @Override  
  14.         public Fragment getItem(int position) {  
  15.             return mList.get(position).fragment;  
  16.         }  
  17.   
  18.         @Override  
  19.         public CharSequence getPageTitle(int position) {  
  20.             return mList.get(position).desc;  
  21.         }  
  22.   
  23.         @Override  
  24.         public int getCount() {  
  25.             return mList.size();  
  26.         }  
  27.   
  28.     } 
相关文章
相关标签/搜索