Skip to content

jiang111/ScalableTabIndicator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScalableTabIndicator

可定制的Indicator,结合ViewPager使用,当然不通过ViewPager也可以用

Download

导入

gradle

compile 'com.jiang.android.scalabletabindicator:library:1.0.5'

Maven

<dependency>
  <groupId>com.jiang.android.scalabletabindicator</groupId>
  <artifactId>library</artifactId>
  <version>1.0.5</version>
  <type>pom</type>
</dependency>

用法

  • 导入项目
compile 'com.jiang.android.scalabletabindicator:library:1.0.5'

  • 在layout中加入
 <com.jiang.android.scalabletabindicator.library.ScalableTabIndicator
        android:id="@+id/tabindicator"
        android:layout_width="match_parent"
        android:layout_height=""
        />
  • 在代码中加入
 mScalableTabIndicator = (ScalableTabIndicator) this.findViewById(R.id.tabindicator);
 /*可要可不要,如果你用到了ViewPager那就要,如果没用到ViewPager那就需要初始化的时候调用mScalableTabIndicator.setCurrentIte m(0);然后mScalableTabIndicator需要实现OnItemClickListener接口 */
 mScalableTabIndicator.setViewPager(pager); 
mScalableTabIndicator.addTab(//TODO...);
//没有ViewPager的情况下使用下面这两句
  mScalableTabIndicator.setOnClickListener(new ScalableTabIndicator.OnItemClickListener() {
      @Override
       public void onClick(int position) {
      }
  });
mScalableTabIndicator.setCurrentItem(0);
  
  
  • 最关键的一步,新建类继承Tab类,并重写相关的方法,在demo中有TabView1,TabView2和TabView3,3个例子。
    /**
     * 当前被选中
     */
    public abstract void actived();

    /**
     * 当前没有被选中
     */
    public abstract void dismissed();
    /**
     * 获取view
     *
     * @return
     */
    public abstract View getView();
  • 注意: 要想知道viewpager回调的进度,可以通过
mScalableTabIndicator.setChangeListener(new ScalableTabIndicator.ChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }
            @Override
            public void onPageSelected(int position) {
            }
            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

或者重写Tab类中的

 /**
     * 如若需要对tab的item元素进行相关操作,可重写这个方法
     *
     * @param positionOffset
     * @param positionOffsetPixels
     */
    public void onPageScrolled(float positionOffset, int positionOffsetPixels) {
    }

###作者

###推荐

About

可定制的ViewPagerIndicator,当然不通过ViewPager也可以用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages