当前位置: 首页 > 知识库问答 >
问题:

设置菜单项的图标

盖马鲁
2023-03-14

我有一个包含多个菜单项的抽屉菜单。我正在尝试动态更改其中一个菜单项的菜单图标和文本颜色。以下代码位于具有抽屉菜单的活动类之一的onCreate()中:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
changeItemWiseTextProperties(navigationView.getMenu());

下面是方法定义:

public void changeItemWiseTextProperties(Menu menu) {
    menu.findItem(R.id.nav_testing).
        setTitle(Html.fromHtml("<font color='#3b9ada'>Testing</font>"));

    menu.findItem(R.id.nav_testing).
        setIcon(ContextCompat.getDrawable(this,R.drawable.icon_testing_activated));
}

虽然我可以成功设置菜单项的标题名和字体颜色,但对菜单图标没有影响。我无法改变这一点。为什么会这样?

共有1个答案

齐修贤
2023-03-14

我检查了我的代码并在日志中打印了icon.toString():menu.findItem(R.id.nav_testing). getIcon(). toString()

以编程方式更改菜单图标前后:menu.findItem(R.id.nav_testing). getIcon()...

后果我得到了两种不同的价值观。这意味着图标正在被更改。但是为什么菜单上没有反映出这一变化呢?

理由:我有两个图标——除了颜色,其他方面都一样。最初是图标测试(灰色),然后我将其设置为激活的图标测试(蓝色)。

灰色是未选择菜单项的默认颜色,而蓝色是选定菜单项的默认颜色。由于我为其设置蓝色图标(icon_testing_activated)的菜单项未被选中,它被变成默认的未选择颜色——灰色。由于这两个图标除了颜色之外是相同的,我认为setIcon()方法不起作用。

解决方案:我以编程方式检查了正在进行颜色更改的菜单项:

menu.findItem(R.id.nav_testing).setChecked(true);
 类似资料:
  • Since 8.2 setToolbarMenu 自定义分享面板第二栏的工具栏内容。 注意:由于苹果的ATS限制,icon URL必须为https链接或base64,http链接会被忽略 使用方法 AlipayJSBridge.call('setToolbarMenu', { menus: [ { name: "字体", tag: "H5MenuActionOf

  • 问题内容: 我试图更改菜单按钮中的样式。我可以更改菜单按钮样式,但不能更改其菜单项。无论我尝试什么,菜单按钮内的菜单项都保持不变。 现在如何更改遗漏的颜色? 问题答案: MenuButton在Menu内部使用并具有类似的API。这样就MenuButton包含MenuItems列表,就像Menu。因此,我认为你需要尝试一起玩.menu,.menu-button并.menu-item在caspian.

  • 在时间视图中,从显示屏上方向下滑动,可下拉快速设置菜单。向左或向右滑动进行浏览,轻触可选择免打扰功能或飞行模式: 闹钟 : 设置闹铃重复:关闭、一次、周一至周五或每天。如果您选择一次、周一至周五或每天,同时也要设置闹钟的时间。 设置闹铃后,时间视图中将显示时钟图标。 免打扰:轻触免打扰图标可启用它,再次轻触将关闭图标。当启用免打扰时,您不会收到任何通知或来电提醒。背光灯激活手势也会被禁用。 飞行模

  • 在时间视图中,从显示屏上方向下滑动,可下拉快速设置菜单。 向左或向右滑动进行浏览,轻触可选择一个功能。 轻触 可定制您想在快速设置菜单中看到的功能。从闹铃、倒计时器、请勿打扰和飞行模式中进行选择。 闹铃:设置闹铃重复:关闭、一次、周一至周五或者 每天。如果您选择一次、周一至周五或每天,同时也要设置闹钟的时间。 启用闹铃后,时间视图中将显示时钟图标。 倒计时器:选择设置计时器,然后设置倒计时时间并按

  • 我有一个,我知道将菜单与之关联的常用方法是使用

  • 我创建了一个包含单个项目的菜单。 这是我在工具栏中的一些活动中使用的,单击时它会下拉一个菜单,目前只有一个选项,但将来可能会更多。 除了图标外,一切都很好,它是传统3点白色的矢量图像。根据showAsAction在更改颜色时的设置。 目前show AsAction设置为从不,因此单击时会显示一个菜单,这就是我想要的,但是图标变为深灰色。如果我将此选项设置为“始终”,则图标变为白色,但我丢失了下拉菜