android – 如何为NavigationView中的单个菜单项提供自定义文本颜色?

嗨,我正在使用 Android NavigationView.我想为NavigationView中的某些项目提供单独的文本颜色,而不是为所有项目.或者我想在NavigationView中选择一个项目时动态更改单个项目的文本颜色(仅限某些项目).我怎样才能做到这一点?

解决方法

是的你可以做到我也做到了.

首先获取要更改颜色的MenuItem

Menu m = navView.getMenu();
 MenuItem menuItem = m.findItem(your_menu_id);

然后用你的颜色涂抹spannable

SpannableString s = new SpannableString(menuItem.getTitle());
s.setSpan(new ForegroundColorSpan(Color.your_color),s.length(),0);
menuItem.setTitle(s);

而已..

现在下面的代码是针对您的第二个解决方案动态更改文本颜色菜单点击..

navView.setNavigationItemSelectedListener(new 
    NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            SpannableString s = new SpannableString(menuItem.getTitle());
            s.setSpan(new ForegroundColorSpan(Color.RED),0);
            menuItem.setTitle(s);
            return false;
        }
    });

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...