是否有可能通过编程方式设置新导航视图中MenuItem的样式?我正在动态构建菜单,无法使用静态XML文件。我找不到任何相关信息。
更新:我知道如何设置标题和图标,但不知道如何设置文本的透明度等。
更新2:在NavigationView类中,有一个setItemTextColor(ColorStateList)
方法。据我所知,不能设置单个项颜色吗?谢谢!
是否有可能通过编程方式设置新导航视图中MenuItem的样式?我正在动态构建菜单,无法使用静态XML文件。我找不到任何相关信息。
更新:我知道如何设置标题和图标,但不知道如何设置文本的透明度等。
更新2:在NavigationView类中,有一个setItemTextColor(ColorStateList)
方法。据我所知,不能设置单个项颜色吗?谢谢!
navigationView.setItemIconTintList(null)
,NavigationView navigationView = (NavigationView) findViewById(R.id.main_nav_view);
navigationView.setItemIconTintList(null);
获取菜单项并为其设置图标。
MenuItem menuItem = navigationView.getMenu().getItem(0);
menuItem.setIcon(R.drawable.nav_new_drawable);
同时也可以设置文字颜色,例如:
navigationView.setItemTextColor(ColorStateList textColor);
设置项目背景,如下所示:
navigationView.setItemBackgroundResource(int resId)
---编辑---
既然您已经了解了以上内容,可以尝试下面的代码。
<color name="test_alpha_color">#40999999</color>
MenuItem menuItem = navigationView.getMenu().getItem(0);
SpannableString s = new SpannableString(menuItem.getTitle());
s.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.test_alpha_color)), 0, s.length(), 0);
menuItem.setTitle(s);
setItemBackgroundResource(int resId)
将更改所有菜单项的背景,但我只想更改特定菜单项的背景。我该如何实现? - user1443317}; - user2362956