0

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

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

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

但我不能让文字颜色改变。我看到一个建议使用 android:itemTextAppearance 的答案,但效果不佳。

我正在使用 Android 4.0 SDK。

任何帮助将不胜感激。

谢谢,吉迪

4

3 回答 3

0

您无法更改它默认情况下在 android API 中提供。如果您进行更改,则它不适用于不同版本的 android 设备。

于 2013-06-18T06:35:58.847 回答
0
@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);
}
于 2013-06-18T06:43:10.903 回答
0

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

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

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

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

区别如下:
在此处输入图像描述 在此处输入图像描述

于 2020-02-27T22:50:09.667 回答