Code Monkey home page Code Monkey logo

pagerslidingtabstrip's Introduction

PagerSlidingTabStrip

Android-导航栏特效,主要是导航栏字体大小和颜色的渐变特效 可以是固定的几个,可也可以是水平滚动 #原理分析与实现 http://blog.csdn.net/ta893115871/article/details/44724953/

效果图

# 属性 ```java app:pstsIndicatorColor 指示器的颜色 app:pstsIndicatorHeight 指示器的高度 app:pstsUnderlineColor 底部线的颜色 app:pstsUnderlineHeight 底部线的高度 app:pstsDividerColor 分割线的颜色 app:pstsDividerPaddingTopBottom 分割线的上下间距 app:pstsTabPaddingLeftRight 文本的左右间距 app:pstsTextSelectedColor TAB选中的颜色 app:pstsScrollOffset app:pstsTabBackground 每一个TAB的背景 app:pstsShouldExpand app:pstsTextAllCaps 所有的小写英文文本自动大写 ,默认是true,默认大写 app:pstsScaleZoomMax android:textColor="@color/color_45c01a" 正常状态的文字颜色 android:textSize="16sp" 正常状态的文字的大小 app:pstsSmoothScrollWhenClickTab="false" 当点击tab时内容区域Viewpager是否是左右滑动,默认是true ```

声明-布局中

<com.gxz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:textColor="@color/color_45c01a"
    android:textSize="16sp"
    app:pstsDividerColor="@android:color/transparent"
    app:pstsIndicatorColor="@color/accent_material_light"
    app:pstsIndicatorHeight="5dp"
    app:pstsShouldExpand="false"
    app:pstsTextSelectedColor="@color/accent_material_light"
    app:pstsUnderlineColor="@color/colorAccent" />

Java 代码

private PagerSlidingTabStrip tabs;
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
ArrayList<String> list=new ArrayList<>();
    for (int i=0;i<10;i++){
        list.add("TAB "+i);
    }
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(),list));
    tabs.setViewPager(pager);
    pager.setCurrentItem(1);
        
// 设置Tab是自动填充满屏幕的
tabs.setShouldExpand(true);

// 设置Tab的分割线的颜色
tabs.setDividerColor(getResources().getColor(R.color.color_80cbc4));
// 设置分割线的上下的间距,传入的是dp
tabs.setDividerPaddingTopBottom(12);

// 设置Tab底部线的高度,传入的是dp
tabs.setUnderlineHeight(1);
//设置Tab底部线的颜色
tabs.setUnderlineColor(getResources().getColor(R.color.color_1A000000));

// 设置Tab 指示器Indicator的高度,传入的是dp
tabs.setIndicatorHeight(4);
// 设置Tab Indicator的颜色
tabs.setIndicatorColor(getResources().getColor(R.color.color_45c01a));

// 设置Tab标题文字的大小,传入的是sp
tabs.setTextSize(16);
// 设置选中Tab文字的颜色
tabs.setSelectedTextColor(getResources().getColor(R.color.color_45c01a));
//设置正常Tab文字的颜色
tabs.setTextColor(getResources().getColor(R.color.color_C231C7));
//设置Tab文字的左右间距,传入的是dp
tabs.setTabPaddingLeftRight(24);

//设置点击每个Tab时的背景色
tabs.setTabBackground(R.drawable.background_tab);

//是否支持动画渐变(颜色渐变和文字大小渐变)
tabs.setFadeEnabled(false);
// 设置最大缩放,是正常状态的0.3倍
tabs.setZoomMax(0.3F);

//这是当点击tab时内容区域Viewpager是否是左右滑动,默认是true
tabs.setSmoothScrollWhenClickTab(true);

#Maven

<dependency>
        <groupId>com.gxz.pagerslidingtabstrip</groupId>
        <artifactId>library</artifactId>
        <version>1.3.1</version>
        <type>jar</type>
        <classifier>sources</classifier>
</dependency>

Gradle

dependencies {
        compile 'com.gxz.pagerslidingtabstrip:library:1.3.1'
}

注意

因项目中的library中依赖了两个库

dependencies {
  compile 'com.android.support:appcompat-v7:23.1.1'
  compile 'com.nineoldandroids:library:2.4.0'
}
使用时有可能这两个依赖有新版本了 你可以这样将library中两个依赖库导出,用法如下,再依赖你自己的最新的库
dependencies {
compile('com.gxz.pagerslidingtabstrip:library:1.3') {
        // exclusion for update the android support jar
        // for example, you can use the appcompat-v7 in your project
        exclude group: 'com.android.support', module: 'appcompat-v7'
        exclude group: 'com.nineoldandroids', module: 'library'
    }
}

#V-1.2 FIX-BUG 1.修改点击TAB颜色渐变不全的问题

2.增加:当点击tab时内容区域Viewpager是否是左右滑动,默认是true

app:pstsSmoothScrollWhenClickTab="false"  属性
tabs.setSmoothScrollWhenClickTab(true);   JAVA方法

#V-1.3 FIX-BUG 1.setTabPaddingLeftRight(int padding) 设置不起作用的问题

#V-1.3.1 加入对title单击和双击的处理监听即OnPagerTitleItemClickListener

  mPagerSlidingTabStrip.setOnPagerTitleItemClickListener(new PagerSlidingTabStrip.OnPagerTitleItemClickListener() {
            @Override
            public void onSingleClickItem(int position) {
                Toast.makeText(LayoutActivity.this, "单击", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDoubleClickItem(int position) {
                Toast.makeText(LayoutActivity.this, "双击", Toast.LENGTH_SHORT).show();
            }
        });

pagerslidingtabstrip's People

Contributors

ta893115871 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pagerslidingtabstrip's Issues

tab without content

Hi,
Is it possible to add a tab without content?
I mean we have a tab at the end of viewpager that when touching, we open an activity.

标题显示不全

在Android 7.0以后,标题文字显示不全,

指示器不显示?

canvas.drawRect(lineLeft + tabPadding, height - indicatorHeight, lineRight - tabPadding, height, rectPaint);
这句代码执行了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.