一款炫酷的TabLayout

ChangeTabLayout

项目地址:simplezhli/ChangeTabLayout 

简介:一款炫酷的 TabLayout

标签:TabLayout-ViewPager-

Stars LICENSE 作者

ChangeTabLayout 是模仿乐视 LIVE App 主界面 TabLayout 效果。

Preview

原效果图

原效果图转为 Gif 过大,所以将录制的 MP4 效果视频已经放入了根目录的preview文件夹内,有兴趣可去查看。

实现效果图

preview

ChangeTabLayout在打开状态时

  • 垂直方向切换时,文字的颜色大小变化。
  • 水平方向切换时,文字的渐变与图片的变化。

ChangeTabLayout在收起状态时

  • 垂直方向切换时,图片的变化。
  • 点击ChangeTabLayout,切换为打开状态。

使用说明

因为使用场景的局限性等原因,暂时不上传至 Maven 中心仓库中,仅提供参考学习用途。

xml 使用部分

    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.view.VerticalViewPager
            android:id="@+id/viewpager"
            android:background="@color/bg"
            android:layout_width="match_parent"
            android:fadingEdge="none"
            android:overScrollMode="never"
            android:layout_height="match_parent"/>

        <com.github.zl.changetablayout.ChangeTabLayout
            android:id="@+id/tabLayout"
            android:layout_width="110dp"
            android:layout_height="match_parent"/>

    </FrameLayout>

代码使用部分

   VerticalViewPager mViewPager = (VerticalViewPager) this.findViewById(R.id.viewpager);
   //只传入自己想要变化的图片,颜色属性生效
   mTabLayout.setViewPager(mViewPager, icon, null);
   //传入默认图片与选中图片,颜色属性不生效
   mTabLayout.setViewPager(mViewPager, iconDefault, iconSelected);

   //监听 TabLayout 点击事件
   mTabLayout.setOnTabClickListener(new ChangeTabLayout.OnTabClickListener() {
       @Override
       public void onTabClicked(int position) {

       }
   });

   //出入水平方向 Page 滚动参数,实现 TabLayout 的收缩效果(可选)
   mTabLayout.setPageScrolled(page, position, positionOffset);

属性说明

xml默认值说明
app:ctl_tabViewColor默认为#161616Tab 背景颜色
app:ctl_indicatorColor默认为#70000000指示器背景色
app:ctl_leftBorderColor默认为#cf212b指示器左侧竖条颜色
app:ctl_tabViewHeight默认为 50dpTab 高度
app:ctl_tabImageHeight默认为 18dpTab 中图片高度(宽度)
app:ctl_tabViewShadowColor默认为#161616Tab 收起时阴影颜色
app:ctl_indicatorPadding默认为 4dp指示器与 Tab 的上下边距之和
app:ctl_defaultTabTextSize默认为 14spTab 中文字默认大小
app:ctl_leftBorderThickness默认为 3dp指示器左侧竖条宽度
app:ctl_defaultTabTextColor默认为#494949Tab 中文字默认颜色
app:ctl_selectedTabTextColor默认为#ffffffTab 中文字选中颜色
app:ctl_defaultTabImageColor默认为#494949Tab 中图片默认颜色
app:ctl_selectedTabImageColor默认为#cf212bTab 中图片选中颜色

实现过程

具体参考这篇博客:ChangeTabLayout 实现过程

TODO

  1. TabView中兼容多行文字。
  2. 竖屏状态下ViewPageonPageScrolled监听不正常。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值