ScalableTabIndicator
Introduction: 可定制的 Indicator,结合 ViewPager 使用
Tags:
indicator-viewpager-可定制的 Indicator,结合 ViewPager 使用,当然不通过 ViewPager 也可以用
导入
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) {
}
作者
- New_Tab - jyuesong@gmail.com
推荐
收集 Android 你不知道的那些小技巧:https://github.com/jiang111/awesome-android-tips
收集 Android studio 常用的插件,请看这里:https://github.com/jiang111/awesome-androidstudio-plugins
收集程序员必备的那些 Chrome 插件: https://github.com/jiang111/chrome-plugin-recommand
通过 RecyclerView 实现的联系人: https://github.com/jiang111/IndexRecyclerView
用于学习 RxJava 操作符的 APP: https://github.com/jiang111/RxJavaApp
展示注册进度的 view: https://github.com/jiang111/ProgressView
可定制的 ViewPagerIndicator: https://github.com/jiang111/ScalableTabIndicator
通过 viewpager 的滑动来对 fragment 内的元素进行动画操作: https://github.com/jiang111/ViewPagerTransformer