【问题标题】:change text color of menu item in options menu更改选项菜单中菜单项的文本颜色
【发布时间】:2013-06-18 06:30:38
【问题描述】:

我正在尝试更改选项菜单中菜单项的文本颜色。 我在这里读到了许多类似的问题和答案,说通过主题和风格,只能通过代码,这是不可能的。我也尝试了代码示例,但它不起作用。

我设法使用这些主题属性更改背景:

@drawable/menu_hardkey_panel_holo_dark @drawable/menu_hardkey_panel_holo_dark #ffffff #ffffff

但我无法更改文本颜色。 我看到一个建议使用 android:itemTextAppearance 的答案,但效果不佳。

我使用的是 Android 4.0 SDK。

任何帮助将不胜感激。

谢谢, 吉迪

【问题讨论】:

    标签: android


    【解决方案1】:

    你不能改变它默认在 android API 中。如果您进行更改,则它不适用于不同版本的 android 设备。

    【讨论】:

      【解决方案2】:
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.my_menu, menu);
          getLayoutInflater().setFactory(new Factory() {
              @Override
              public View onCreateView(String name, Context context, AttributeSet attrs) {
                  if (name .equalsIgnoreCase(“com.android.internal.view.menu.IconMenuItemView”)) {
                      try{
                          LayoutInflater f = getLayoutInflater();
                          final View view = f.createView(name, null, attrs);
                          new Handler().post(new Runnable() {
                              public void run() {
                                  // set the background drawable
                                  view .setBackgroundResource(R.drawable.my_ac_menu_background);
      
                                  // set the text color
                                  ((TextView) view).setTextColor(Color.WHITE);
                              }
                          });
                          return view;
                      } catch (InflateException e) {
                          } catch (ClassNotFoundException e) {}
                  }
                  return null;
              }
          });
          return super.onCreateOptionsMenu(menu);
      }
      

      【讨论】:

      • 你能帮我理解一下 menu.xml 是什么意思吗?
      • 我就是这么想的。但是我的菜单 xml 使用 并且当我尝试使用您的代码时它给了我错误。谢谢!
      • 我的菜单 xml 使用 ,当我尝试使用您的代码时,它给了我错误。谢谢!
      • 我尝试搜索这样的示例,但找不到相关内容。你有东西吗?非常感谢!
      • 嗨,Segi,有机会举个例子吗?
      【解决方案3】:

      我正在使用 Kotlin 和新的 Navigation 组件,我可以通过将这一行添加到我的主题来更改它:

      <item name="android:actionMenuTextColor">@color/white</item>
      

      然后像这样手动更新应用于我的工具栏的主题:

      toolbar = findViewById(R.id.toolbar)
      toolbar.popupTheme = R.style.AppTheme
      

      这就是区别:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-09
        • 1970-01-01
        • 2011-04-14
        • 2017-10-25
        • 1970-01-01
        相关资源
        最近更新 更多