NavigationView menu默认icon和title会随着菜单状态改变而改变,选择某个菜单后再次打开侧边菜单后会发现该菜单的icon和title会变成应用的主颜色,其他菜单项仍然为黑色。

如果想关闭系统默认的这个效果,有两种方式:

1. XML布局文件设置

 <android.support.design.widget.NavigationViewandroid:id="@+id/mainNavView"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="start"android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:itemTextColor="@color/colorPrimary" app:itemIconTint="@color/colorPrimary" app:menu="@menu/main_drawer"> </android.support.design.widget.NavigationView>

代码中的app:itemTextColor=”@color/colorPrimary”设置菜单title的颜色,app:itemIconTint=”@color/colorPrimary”设置菜单icon的颜色,如果icon的颜色设为null,即app:itemIconTint=”@null”,则icon的颜色还是会随菜单的状态改变而改变。

2.代码中设置

mainNavView.setItemTextColor(null);
mainNavView.setItemIconTintList(null);

这样设置后icon和title的颜色就是默认的了,比如说你的icon原图是红色的,那么显示就是红色,而title默认都是黑色的。

如果你想自定义系统默认的颜色变化,也有如下两种方式:

1.XML资源文件设置

新建一个selector为根标签的资源文件,名称姑且为nav_menu_text_color,代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:color="@color/checked_color"/><item android:state_checked="false" android:color="@color/uncheck_color"/> </selector>

然后在java代码中将该资源文件设置为icon和title的颜色即可。

 mainNavView.setItemTextColor(resources.getColorStateList(R.drawable.nav_menu_text_color, null)); mainNavView.setItemIconTintList(resources.getColorStateList(R.drawable.nav_menu_text_color, null));

2.代码中设置

int[][] states = new int[][]{
new int[]{ -android.R.attr.state_checked}, new int[]{android.R.attr.state_checked} }; int[] colors = new int[]{ getResources().getColor(R.color.checked_color), getResources().getColor(R.color.uncheck_color) }; ColorStateList csl = new ColorStateList(states, colors); mainNavView.itemTextColor = csl mainNavView.itemIconTintList = csl

这样设置完成后,选中的菜单icon和title颜色为checked_color,可以随意设置你想要的任何颜色,未选中则是uncheck_color

转载于:https://www.cnblogs.com/Free-Thinker/p/8981930.html

NavigationView更改菜单icon和title颜色变化效果相关推荐

  1. qlabel可以选中吗_QLabel自定义类实现点击效果以及鼠标掠过字体的颜色变化效果...

    1.自定义实现QLabel的clicked()信号,以及实现hover的效果 头文件: class activityLabel:public QLabel { Q_OBJECT public: act ...

  2. html下拉菜单换背景颜色,如何在select框下拉菜单中更改蓝色突出显示的颜色

    如何在select框下拉菜单中更改蓝色突出显示的颜色 如何更改此下拉菜单中的蓝色突出显示? 链接到select框演示 这是代码: Select an OptionOption 1Option 2 如果 ...

  3. css怎么更改指定字体颜色,CSS-如何更改禁用输入的字体颜色?

    CSS-如何更改禁用输入的字体颜色? 我需要更改CSS中禁用的输入元素的样式. 我该如何针对Internet Explorer? 10个解决方案 46 votes 您不能使用Internet Expl ...

  4. android 通知栏背景颜色跟随app导航栏背景颜色变化而变化

    原文地址为: android 通知栏背景颜色跟随app导航栏背景颜色变化而变化 通知栏(notification)背景颜色跟随app导航栏(top title)背景颜色变化而变化. 这也叫沉浸式状态栏 ...

  5. android更改app背景颜色,使用AppCompat更改操作栏的背景颜色

    我在网上发现了有关此问题的一些问题.不幸的是,到目前为止,我尝试的所有操作均未成功. 标题说,我需要更改操作栏的背景颜色. 该项目的最小sdk为9,最大sdk为19. 我在res / values文件 ...

  6. html表格一行设置颜色,更改表格中一行的颜色,html

    我想用html和css制作表格.但我的问题是,我希望桌子有两种颜色的行,一个橙色和一个白色....我使用JavaScript来填充表格.但我不能改变颜色在第二种情况下.什么sintax我应该使用使用J ...

  7. javascript 标记_如何使用JavaScript更改Google Maps标记的颜色

    javascript 标记 by Tan Le Tian 谭乐天 如何使用JavaScript更改Google Maps标记的颜色 (How to change the color of Google ...

  8. 如何更改 think-cell 图表的默认颜色?使用教程

    think-cell将 Microsoft PowerPoint 的主题颜色用于许多图表元素(例如,轴.文本.箭头等).这些颜色取自您演示文稿文件的主题颜色.若默认项的设计正确无误,则在您切换配色方案 ...

  9. excel到期提醒,可以用函数公式来做,颜色变化可以用条件格式来做。

    excel到期提醒,可以用函数公式来做,颜色变化可以用条件格式来做. 1.函数公式. 如示例数据,B列分别运用了条件格式和函数公式,函数公式为:=IF(DATEDIF(A1,TODAY()," ...

最新文章

  1. 越小越好:为什么电子器件都这么小巧玲珑?
  2. RIPv1和v2综合实验(CCNP阶段)
  3. 玩转springboot:thymeleaf模板引擎入门程序
  4. boost::callable_traits的is_lvalue_reference_member的测试程序
  5. 她偏爱雏菊一样的淡黄色_为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施...
  6. java p代表哪种数据类型_java数据类型(八种基本数据类型+三种引用类型)
  7. pythonfor循环加2_python中for循环如何实现每次控制变量翻倍
  8. 2.吴恩达机器学习课程-作业2-逻辑回归
  9. ubuntu系统VNC服务器安装配置
  10. 名字正则只能是中文英文_F开头的英文名字有哪些?英文名字典词典,根据中文名姓名发音起关联英文名,最强英文名取名攻略大全!...
  11. 带你实战Android深色模式,深入原理剖析
  12. 微位科技李子阳:哈耶克—未来的价值单位
  13. 怎么做gif?一分钟帮你搞定gif制作
  14. 等效于35mm相机焦距的计算方法
  15. 微软文本转语音实测记录附php/go调用源码
  16. 点击按钮点击复制功能
  17. 力扣编程题-解法汇总
  18. Atitit db analysis statistics tonjyi fsy数据库统计分析目录1. Atitit 数据库表与注释文档与统计(表,说明) 11.1. 获取表列表 数据库包含哪些
  19. Zephyr MCUBoot
  20. java技术栈 高清视频

热门文章

  1. python response[200_python – django上的代码200 httpresponse
  2. 【蓝桥杯 - 真题】六角幻方(dfs+剪枝)
  3. 【UVA - 11383】Claw Golden Tiger (二分图最优匹配,KM算法原理)
  4. 【CodeForces - 745B】Hongcow Solves A Puzzle (思维,乱搞,字符串)
  5. Ubuntu系统中使用搜狗输入法
  6. 国开大学计算机应用基础作业二,国家开放大学《计算机应用基础》形考作业二答案解析 (2)...
  7. android sonar 简书,SonarQube对ios、android代码检测
  8. C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则
  9. 《盘点那些秀你一脸的秒天秒地算法》(4)
  10. ubuntu nginx配置负载均衡篇(一)