Github地址:https://github.com/astuetz/PagerSlidingTabStrip

1,Include the library

dependencies {
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
}
2,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" xmlns:app="http://schemas.android.com/apk/res/com.example.viewfragment"> <com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
app:pstsShouldExpand="true"
/> <android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_below="@id/tabs"
android:layout_width="fill_parent"
android:layout_height="fill_parent" /> </RelativeLayout>

3,使用和代码设置属性,

 private void initView() {

        get_record_viewpager = (ViewPager) this
.findViewById(R.id.get_record_viewpager);
get_record_tab = (PagerSlidingTabStrip) this
.findViewById(R.id.get_record_tab);
dm = getResources().getDisplayMetrics();
monthGetRecordFragment = new MonthGetRecordFragment();
totalGetRecordFragment = new TotalGetRecordFragment();
fragmentList.add(monthGetRecordFragment);
fragmentList.add(totalGetRecordFragment);
pagerAdapter = new GetRecordsPagerAdapter(getSupportFragmentManager(),
fragmentList);
get_record_viewpager.setAdapter(pagerAdapter);
get_record_tab.setViewPager(get_record_viewpager);
setTabsValue();
}
 /**
* 对PagerSlidingTabStrip的各项属性进行赋值。
*/
private void setTabsValue() {
// 设置Tab是自动填充满屏幕的
get_record_tab.setShouldExpand(true);
// 设置Tab的分割线是透明的
get_record_tab.setDividerColor(Color.TRANSPARENT);
// 设置Tab底部线的高度
get_record_tab.setUnderlineHeight((int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 1, dm));
// 设置Tab Indicator的高度
get_record_tab.setIndicatorHeight((int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 2, dm));
// 设置Tab标题文字的大小
get_record_tab.setTextSize((int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 15, dm));
// 设置Tab标题默认的颜色
get_record_tab.setTextColor(getResources().getColor(
R.color.get_record_text_unselected_color));
// 设置选中Tab标题的颜色
get_record_tab.setSelectedTextColor(getResources().getColor(
R.color.get_record_text_selected_color));
// 设置Tab底部线的颜色
get_record_tab.setUnderlineColor(getResources().getColor(
R.color.get_record_line_unselected_color));
// 设置Tab Indicator的颜色
get_record_tab.setIndicatorColor(getResources().getColor(
R.color.get_record_line_selected_color));
// 取消点击Tab时的背景色
// get_record_tab.setTabBackground(getResources().getColor(R.color.tab_pressed_hover));
}

或者XMl 中设置属性

个性化设置

为了让你的app不像另一个 Play Store上面的app,你可以添加这些属性来做出自己独具一格的应用。

    • pstsIndicatorColor Color of the sliding indicator  滑动条的颜色
    • pstsUnderlineColor Color of the full-width line on the bottom of the view  滑动条所在的那个全宽线的颜色
    • pstsDividerColor Color of the dividers between tabs   每个标签的分割线的颜色
    • pstsIndicatorHeightHeight of the sliding indicator       滑动条的高度
    • pstsUnderlineHeight Height of the full-width line on the bottom of the view    滑动条所在的那个全宽线的高度
    • pstsDividerPadding Top and bottom padding of the dividers   分割线底部和顶部的填充宽度
    • pstsTabPaddingLeftRight Left and right padding of each tab   每个标签左右填充宽度
    • pstsScrollOffset Scroll offset of the selected tab
    • pstsTabBackground Background drawable of each tab, should be a StateListDrawable  每个标签的背景,应该是一个StateListDrawable
    • pstsShouldExpand If set to true, each tab is given the same weight, default false   如果设置为true,每个标签是相同的控件,均匀平分整个屏幕,默认是false
    • pstsTextAllCaps If true, all tab titles will be upper case, default true   如果为true,所有标签都是大写字母,默认为true
GetRecordsPagerAdapter.java
package com.example.viewpagerdemo;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; /**
* 类说明:
*
* @author fuyanan
* @date 2015-8-3
* @version 1.0.0
*/
public class GetRecordsPagerAdapter extends FragmentPagerAdapter {
private final String[] titles = { "本月领取", "累积领取" };
private List<Fragment> fragmentLists; @Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titles[position];
} public GetRecordsPagerAdapter(FragmentManager fm,
List<Fragment> fragmentLists) {
super(fm);
this.fragmentLists = fragmentLists;
} @Override
public Fragment getItem(int position) {
// TODO Auto-generated method stub
return fragmentLists.get(position);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return fragmentLists.size();
} }

MonthGetRecordFragment.java和TotalGetRecordFragment的代码如下所示

public class MonthGetRecordFragment extends Fragment {

    @Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.month_get_record, container, false);
}
}
 

PagerSlidingTabStrip(viewPage滑动菜单)的更多相关文章

  1. bootstrap-简单实用的垂直手风琴滑动菜单列表特效

    前端: <html lang="zh"> <head> <meta charset="UTF-8"> <meta ht ...

  2. html5手机端的点击弹出侧边滑动菜单代码

    效果预览:http://hovertree.com/texiao/html5/19/ 本效果适用于移动设备,可以使用手机等浏览效果. 源码下载:http://hovertree.com/h/bjaf/ ...

  3. Android 滑动菜单框架--SwipeMenuListView框架完全解析

    SwipeMenuListView(滑动菜单) A swipe menu for ListView.--一个非常好的滑动菜单开源项目. Demo 一.简介 看了挺长时间的自定义View和事件分发,想找 ...

  4. ionic教程之Win10环境下ionic+angular实现滑动菜单及列表

    写博客,不容易,你们的评论和转载,就是我的动力,但请注明出处,隔壁老王的开发园:http://www.cnblogs.com/titibili/p/5124940.html 2016年1月11日 21 ...

  5. Android 3D滑动菜单完全解析,实现推拉门式的立体特效

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10471245 在上一篇文章中,我们学习了Camera的基本用法,并借助它们编写了一 ...

  6. Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个 ...

  7. Android 学习笔记之AndBase框架学习(七) SlidingMenu滑动菜单的实现

    PS:努力的往前飞..再累也无所谓.. 学习内容: 1.使用SlidingMenu实现滑动菜单..   SlidingMenu滑动菜单..滑动菜单在绝大多数app中也是存在的..非常的实用..Gith ...

  8. [ionic开源项目教程] - 第3讲 左右滑动菜单的实现(使用Tabs和SlideBox)

    使用Tabs和SlideBox实现左右滑动菜单 1.将tab1.html的代码改为如下: <ion-view view-title="健康"> <ion-cont ...

  9. android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu

    示意图就不展示了,和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉,在这里我简单说明一下用自定义ViewGroup来实现. 实现方法:我们自定义一个ViewGroup实现左右滑动, ...

随机推荐

  1. 在Android中使用实时调度(real-time)

    Linux的线程调度策略中有FIFO和RT的实时调度方法,但是在Android中做了限制,普通用户不能修改线程的调度算法为FIFO和RT,必须ROOT用户才能更改.但问题是程序是以普通用户启动和运行的 ...

  2. Python学习之路day3-字符编码与转码

    一.基础概念 字符与字节 字符是相对于人类而言的可识别的符号标识,是一种人类语言,如中文.英文.拉丁文甚至甲骨文.梵语等等.    字节是计算机内部识别可用的符号标识(0和1组成的二进制串,机器语言) ...

  3. github 第一次使用及出现的问题解决

    1.前言: 我们使用git,自然是希望我们的项目可以方便的从本地上传到git的仓库中,从而实现项目版本控制和备份,但是,从GitHub的网站上传文件,只能上传25MB的数据,我想多数人的项目都不可能只 ...

  4. Django-form补充

    Django_form补充 问题1:  注册页面输入为空,报错:keyError:找不到password def clean(self): print("---",self.cle ...

  5. Microsoft Visual Studio 2012 Update 4 RC 3 离线安装程序

    Microsoft Visual Studio 2012 Update 4 RC 3 离线安装程序 ☆ 微软官网地址:☆ http://www.microsoft.com/en-us/download ...

  6. hdu4970(线性区间更新的懒操作)

    思路是求出从每一点出发走到终点分别要受到多少伤害,然后和每个怪兽的血量比一下.给一个数组,告了哪些区间需要更新,我需要的就是都更新以后每个点的伤害值是多少.不涉及到区间查询,没必要用线段树或树状数组( ...

  7. stl_algobase.h

    stl_algobase.h // Filename: stl_algobase.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...

  8. 使用Visio画UML模型

    Microsoft Office Visio“UML 模型图” 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统.) 提供全面的支持 ...

  9. Jupyterhub Error 503: Proxy Target Missing

    Jupyterhub Error 503: Proxy Target Missing 请求太频繁

  10. LOJ2542. 「PKUWC2018」随机游走

    LOJ2542. 「PKUWC2018」随机游走 https://loj.ac/problem/2542 分析: 为了学习最值反演而做的这道题~ \(max{S}=\sum\limits_{T\sub ...