[Widget]GradientTabStrip-微信式底部渐变栏

GradientTabStrip

ICON

继承自BaseTabStrip,实现微信式渐变底部Tab效果,为ViewPager添加如PagerTitleStrip一样的Tab,但支持更多自定义功能,并支持为Tab增加标记点功能,并可以自定义标记点各自的位置及显示状态以及背景等。

主要实现原理为:BaseTabStrip将底层的交互处理好了,具体实现只要将两层Drawable不同alpha的叠加,通过偏移值计算文字的颜色rgb,绘制以及实现点击action的xy判断position。

预览

Screenshots

要求

  • minSdkVersion 9
  • 保持跟其他官方支持库版本一致(如:com.android.support:appcompat-v7)

链接

使用

  • 基本布局
<am.widget.gradienttabstrip.GradientTabStrip
    android:id="@+id/gts_gts_tabs"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:textColor="@color/color_gradienttabstrip_tab"
    android:textSize="12sp"
    app:gtsBackground="@drawable/bg_common_press"/>
  • 基本代码
GradientTabStrip tabStrip = (GradientTabStrip) findViewById(id);
GradientTabStrip.GradientTabAdapter adapter = new GradientTabStrip.GradientTabAdapter () {
    @Override
    public Drawable getNormalDrawable(int position, Context context) {
        return null;
    }

    @Override
    public Drawable getSelectedDrawable(int position, Context context) {
        return null;
    }

    @Override
    public boolean isTagEnable(int position) {
        return false;
    }

    @Override
    public String getTag(int position) {
        return null;
    }
};
tabStrip.bindViewPager(viewPager);

注意

  • 不要使用ViewPage的setCurrentItem(int)方法,其不会通知到GradientTabStrip进行刷新,使用GradientTabStrip的performClick(int)方法
  • 布局时,android:textColor指定的颜色可以使用选择器,其中android:state_selected=”true”状态下的颜色会与普通状态下的颜色进行渐变
  • GradientTabAdapter中进行了改变GradientTabAdapter,需要手动通知GradientTabStrip进行刷新
  • 不需要Tag小红点,可以使用SimpleGradientTabAdapter替代GradientTabAdapter
  • 保持跟其他官方支持库版本一致(如:com.android.support:appcompat-v7),否则可能出现错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值