以编程方式设置导航视图菜单项样式



是否可以在新的导航视图中以编程方式设置菜单项的样式?我正在动态地构建菜单,不能使用静态XML文件。我一直找不到关于这方面的任何信息。

更新:我熟悉设置标题和图标,但不知道如何设置文本的alpha值。

UPDATE 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);

相关内容

  • 没有找到相关文章