Android-NavMenu-master

一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装。

添加依赖

1. 在项目根目录的 build.gradle 中添加

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

2. 在项目的 build.gradle 中添加

compile 'com.github.smashinggit:Android-NavMenuLayout:v1.0.0'

如何使用

1. 普通用法

第一步, 在xml文件中添加控件

在xml中的跟布局添加 xmxmlns:app="http://schemas.android.com/apk/res-auto"

android:id="@+id/nav_layout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:menuCount="3" />

注:

app:menuCount="3" 属性是必须要添加的,代表底部菜单的数量,此数值必须要与 Activity 中设置的图片资源,文字资源的数量一致,

否则无法正常显示

第二步, 在Activity中设置数据

private int[] iconRes = {R.mipmap.ic_home_normal, R.mipmap.ic_managemoney_normal, R.mipmap.ic_me_normal};

private int[] iconResSelected = {R.mipmap.ic_home_selected, R.mipmap.ic_managemoney_select, R.mipmap.ic_me_select};

private String[] textRes = {"首页", "理财", "个人中心"};

mNavMenuLayout.setIconRes(iconRes)//设置未选中图标

.setIconResSelected(iconResSelected)//设置选中图标

.setTextRes(textRes)//设置文字

.setSelected(0);//设置选中的位置

注:

setSelected(int position)方法一定要放在最后调用,因为在该方法中实现了刷新页面的功能,其他的几个方法都只是进行了赋值操作,

并没有刷新页面;

效果图

2. 带消息提示的用法

显示消息或红点提示

mNavMenuLayout.setIconRes(iconRes)//设置未选中图标

.setIconResSelected(iconResSelected)//设置选中图标

.setTextRes(textRes)//设置文字

.setMsg(0, "99+")//设置显示消息

.setMsg(1, "NEW")//设置显示消息

.showRedPoint(2)//设置显示红点

.setSelected(0);//设置选中的位置

注:

setMsg(int position,String msg) 方法,第一个参数代表底部菜单的位置,第二个参数代表显示的内容

showRedPoint(int position)方法,参数代表底部菜单的位置

取消消息或红点提示

mNavMenuLayout .hideMsg(0)//隐藏消息

.hideMsg(1)//隐藏消息

.hideRedPoint(2)//隐藏红点

注:

hideMsg(int position)参数代表底部菜单位置

hideRedPoint(int position)同上

效果图

3. 点击事件

//选中的点击事件

mNavMenuLayout.setOnItemSelectedListener(new NavMenuLayout.OnItemSelectedListener() {

@Override

public void onItemSelected(int position) {

mViewPager.setCurrentItem(position);//选中后切换viwepager

Toast.makeText(MainActivity.this, "选中了-> " + textRes[position], Toast.LENGTH_SHORT).show();

}

});

//已选中状态下的点击事件

mNavMenuLayout.setOnItemReSelectedListener(new NavMenuLayout.OnItemReSelectedListener() {

@Override

public void onItemReSelected(int position) {

Toast.makeText(MainActivity.this, "重复选中了-> " + textRes[position], Toast.LENGTH_SHORT).show();

}

});

注:

点击事件分为2种:

setOnItemSelectedListener 代表的是当一个 item 由 未选中状态 变成 选中状态 时的回调

setOnItemReSelectedListener 代表的是当一个 item 已经是选中状态 并且 又点击该 item 时的回调

效果图

4. 更多个性化定制

mNavMenuLayout.setIconRes(iconRes)//设置未选中图标

.setIconResSelected(iconResSelected)//设置选中图标

.setTextRes(textRes)//设置文字

.setIconSize(60, 60)//设置图标大小

.setIconSize(0, 70,70)

.setTextSize(20)//设置文字大小

.setTextSize(0, 20)

.setTextColor(Color.GRAY)//未选中状态下文字颜色

.setTextColorSelected(Color.RED)//选中状态下文字颜色

.setBackColor(Color.WHITE)//设置背景色

.setBackColor(2,Color.RED)

.setMarginTop(PixelUtil.dpToPx(MainActivity.this, 5))//文字和图标直接的距离,默认为5dp

.setMarginTop(1, PixelUtil.dpToPx(MainActivity.this, 10))

.setSelected(0);//设置选中的位置

注:

以设置图标大小为例,有两个重载方法,

.setIconSize(60, 60) 表示将图标宽高设为 60 * 60,此效果针对于底部所有的item,即底部所有图标大小都会是 60 * 60

.setIconSize(0, 70,70) 第一个参数代表位置,表示针对将底部哪一个item的图标进行设置

报错处理

假如在使用过程中出现了无法显示或者是显示效果不正确等问题,请查看Log,里面会有报错提示。

例如:

如果没有在xml中声明  app:menuCount="" 属性 或者是 属性的值 小于1 ,就会在LogCat中看到这样的提示:

03-18 22:37:58.405 2518-2518/? E/NavMenuLayout: the menuCount mast greater than 0

03-18 22:37:58.405 2518-2518/? E/NavMenuLayout: the iconRes length is not equals count

03-18 22:37:58.405 2518-2518/? E/NavMenuLayout: the iconResSelected length is not equals count

03-18 22:37:58.405 2518-2518/? E/NavMenuLayout: the textRes length is not equals count

联系方式

如果在使用过程中有什么问题或者是意见,请联系我。谢谢大家!

qq: 2670469507

邮箱:smashing_chen@163.com

android底部导航栏带消息数的框架,GitHub - BarkSheep/Android-NavMenuLayout: 一个底部导航栏, 实现了显示未读消息数, 显示红点等效果的封装...相关推荐

  1. 安卓微信 返回显示未读条数_Android仿微信底部菜单栏功能显示未读消息数量

    底部菜单栏很重要,我看了一下很多应用软件都是用了底部菜单栏,这里使用了tabhost做了一种通用的(就是可以像微信那样显示未读消息数量的,虽然之前也做过但是layout下的xml写的太臃肿,这里去掉了 ...

  2. android 应用图标 角标 显示未读消息

    Android桌面角标的适配确实是非常坑爹的需求.原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能.Android程序员就很苦逼,要适配很多机型.建议万不得已情况下还是不要进行这项 ...

  3. Android 桌面图标右上角显示未读消息数字

    背景: 在Android原生系统中,众所周知不支持桌面图标显示未读消息提醒的数字,虽然第三方控件BadgeView可以实现应用内的数字提醒.但对于系统的图标,特别是app的logo图标很难实现数字标志 ...

  4. 图标显示未读消息数量

    最近做的项目,要求图标的右上角能显示未读消息的数量,也就像微信的未读消息一样的效果. 没有做过,之前一直这样的效果好是申请,怎么图标的右上角会出现一个圆圈,然后圆圈里面有数字呢. 只有经历,才能懂得. ...

  5. 微信小程序定时器获取消息并在tabber按钮显示未读消息

    微信小程序定时器获取消息并在tabber按钮显示未读消息 onShow() {let that = this;this.getUserToken();wxService.setPageTitle(&q ...

  6. Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51082574 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  7. Android app图标显示未读消息数

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51082574 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  8. android图标未读消息,Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示...

    原理 添加角标的原理就是发送一个Broadcast(广播),在广播的Intent中指定需要被添加角标的应用的packageName(包名),className(类名),count(角标数目).当然了, ...

  9. Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示

    http://www.51itong.net/android-badgenumber-9789.html

最新文章

  1. ArcGIS Desktop 9.3.1安装流程
  2. python selenium对浏览器自动截图
  3. Java-Map从入门到性能分析1【Map初识、Map通用方法、HashMap的使用(遍历方法、性能分析)】
  4. 工作73:获取id值
  5. 计算机 教育 研究生分数查询,专业硕士在考试结束之后几周内可以去查分呢现在只能是通过电脑来查分了吗...
  6. ContentProvider简介
  7. springboot细节挖掘(对测试的支持)
  8. c语言printf打印字符串,puts()vs printf()用于以C语言打印字符串
  9. Recorder︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)
  10. 小程序倒计时页面跳转
  11. 第三方定量定性检测质谱实验
  12. 联邦学习模型鲁棒性攻击
  13. python人名独特性统计_荐第六章:组合数据类型练习[人名独特性统计]学习思考...
  14. 数据分析:新冠疫情实时数据爬取
  15. java中instant_Instant
  16. Snapchat如何突出重围?
  17. 711气象雷达电路图
  18. Speed as a Habit(让速度成为一种习惯)
  19. 有什么软件可以自动把PDF文件翻译成英文的吗?
  20. Crunching Cruncher send_music_thumb_backup.png failed, see logs

热门文章

  1. 内网渗透——信息收集
  2. html设置密码,设置密码.html
  3. 历史上的今天:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑
  4. Windows 11 支持的 Intel 处理器
  5. java html 转word_Java Html转Word
  6. 【C语言】函数的声明_函数定义_函数调用_函数递归 [函数的基本使用]
  7. ride传递参数是unicode方式解决方法
  8. 软件测试秋招技术面试(面经)
  9. 递归与动态规划---龙与地下城游戏问题
  10. 奇数阶矩阵,横竖斜加起来都相等算法(罗伯法幻方)