转载请标明出处:
http://blog.csdn.net/tyzlmjj/article/details/47904609
本文出自:【M家杰的博客】

2016-5-1更新
项目已经按照谷歌Material Design 的底部导航栏规范完全重构过,具体效果看GitHub

原先的代码我保存在了old分支

Material Design底部导航栏规范:https://www.google.com/design/spec/components/bottom-navigation.html

以下为原文


概述
ViewPager+自定义的底部导航栏在手机应用中非常常见,此开源组件可以帮助开发者快速创建与ViewPager配合使用的底部导航栏。带有消息数量显示、小红点等。


完成效果

使用方法

1.在XML文件中添加布局,一般设置在底部。

 <com.mjj.PagerBottomTabStrip        android:id="@+id/tab"        android:layout_height="56dp"        android:layout_width="match_parent"        android:background="#FFFFFF"        android:layout_alignParentBottom="true"        />

2.在Activity的onCreate方法或Fragement的onCreateView方法,绑定控件到ViewPager,初始化。

需要注意的:- ViewPager需要在此之前就初始化- ViewPager的适配器中的 getPageTitle()方法需要重写,以便获取标题文字
PagerBottomTabStrip pagerBottomTabStrip = (PagerBottomTabStrip) findViewById(R.id.tab); pagerBottomTabStrip.builder(mViewPager)    .ColorMode()    .TabPadding(5)    .build();

3.如果你想监听ViewPager的滑动变化事件,应该设置在此控件上,不要直接在ViewPager上设置

mPagerBottomTabStrip.addOnPageChangeListener(Listener);

可自定义控制的所有方法

开始构建

  • builder(ViewPager) 从这里开始构建,放入一个初始化完毕的ViewPager

模式选择

  • DefaultMode() 默认模式:显示原始的图标,不做颜色上的修改
  • ColorMode() 纯色模式:改变图标的颜色为设置的颜色(纯色的)

属性设置

  • TabTextSize(int textsize)文字大小
  • TabPadding(int padding) 内边距,单位为DP
  • TabTextColor(int textcolor) 文字颜色
  • TabClickTextColor(int clicktextcolor) 选中之后文字的颜色
  • TabIconColor(int iconcolor) 在COLORMODE模式下图标的颜色
  • TabClickIconColor(int clickiconcolor) 在COLORMODE模式下选中后图标的颜色
  • TabMessageBackgroundColor(int backgroundcolor) 圆形消息的背景颜色
  • TabMessageTextColor(int textcolor) 圆形消息的数字颜色
  • TabIcon(int[] resids) 设置图标,非XML文件
  • TabClickIcon(int[] resids) 设置选中后的图标,非XML文件
  • TabBackground(int resid) TAB按钮背景

完成构建

  • build()

其他方法

  • setMessageNumber(int postion,int messageNumber)
    设置按钮显示的消息数量
    postion 第几个按钮,从0开始。
    messageNumber 需要显示的消息数量

  • addMessageNumber(int postion,int messageNumber)
    增减按钮显示的消息数量
    postion 第几个按钮,从0开始。
    messageNumber 需要增减的消息数量

  • setNews(int postion,Boolean news)
    控制无数字小圆点的显示与消失
    news false消失,true显示。
    postion 第几个按钮,从0开始。

  • setFocus(int number)
    手动设置选中的Tab项(一般情况下不需要手动设置),从0开始

  • addOnPageChangeListener(OnPageChangeListener listener)
    增加ViewPager滑动监听

参考资料

实现的原理可以看我之前的一篇博客:
Android 自定义底部导航栏&消息显示

源码下载

Eclipse版
Android Studio版
GitHub

更多相关文章

  1. React Native开发指南
  2. Android中使用DownloadManager下载并安装apk
  3. 【 Android(安卓)10 系统启动 】系列 -- Launcher(应用门户)
  4. android MediaCodec ACodec OMX tips
  5. Android判断现在所处界面是否为home主桌面的方法
  6. Android获得内/外置存储卡路径的方法
  7. android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
  8. android 自动弹出软件盘和不弹出设置
  9. Android进程间通信(二):通过AIDL介绍Binder的工作机制

随机推荐

  1. Activity属性
  2. Android Log 机制
  3. android studio中用svn来管理项目
  4. Android--ListView滚动条样式
  5. ok6410 android driver(5)
  6. Android新技术
  7. Android中使用Kotlin实现一个简单的登录
  8. Android官方架构组件介绍之LifeCycle
  9. [android]fmodex在某些android设备上声音
  10. Android学习07-----事件处理(4)键盘事件