BottomNavicationView 中图标不改变的问题

本文介绍了如何在Android中使用BottomNavigationView实现底部导航栏,包括引入方法、常见属性设置,以及解决图标颜色渲染问题。重点讲解了如何改变图标的渲染颜色和替换不同图标,并提供了代码示例和demo下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BottomNavigationView实现底部导航栏

1. 引入方法

    implementation 'com.android.support:design:26.+'

2. 常见的属性

XML attributes用法 Cool
itemBackground底部导航栏的背景颜色
itemIconTint图标==选中==/==未选中==渲染的颜色
itemTextColor文字==选中==/==未选中==的颜色

3. 两种效果:改变图标的渲染颜色和替换不同的图标

- 只改变图标的渲染颜色

具体设置如下图:
xml设置
selecter_color配置如下图 :
这里写图片描述

在这里我们设置了图标和文字在未选中和选中状态下渲染的颜色。尽管我们在@menu/navigation中的item设置的图片的颜色是蓝色(选中)、白色(未选中)的,如下图:
这里写图片描述
但是在演示的时候,所有的图标都会被渲染成红色,如下图:
这里写图片描述
明明是想显示UI姐姐做的图片,就变成这样,显然有点坑!image

只能找api文档中,有个方法==ItemIconTintList==,没错就是他,可以让我们脱坑!具体看下面 ↓ ↓ ↓ ↓

- 替换为UI提供的图片配色

我们需要在代码中加入如下图中的代码
这里写图片描述

就可以结局上面的问题,显示效果如下图:
这里写图片描述

4. BottomNavigationView和viewpager实现一套完整的

下载地址如下

demo下载地址

5.凸出来的菜单效果

 一直想找个凸出来的效果,奈何百度不到,还是去使用别人写好的自定义的控件吧。比如:

PagerBottomTabStrip

6.设置通知的红点

类似于QQ中的消息的红点通知,使用第三方库 BadgeView
由于BadgeView需要设置红点得时候绑定控件view。

可以通过:
BottomNavicationView bottomNavicationView=findViewById(R.id.bottom_xml);
bottomNavicationView.findViewById(R.id.menu中设置的item的id)
获取控件view。完整的demo地址如下:

带通知红点的demo


以上就是我的总结和理解,个人认为还是看源码,只有阅读理解能力强大了,才能尝试去随心所欲的改写,那种感觉一直渴望但是触摸不到,努力 吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值