棒棒糖动作栏菜单项文字是黑色而不是白色?

时间:2015-04-04 09:11:01

标签: android

以下是我在操作栏中向菜单添加项目的方法:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        TypefaceSpan actionBarTypeFace = new CustomTypefaceSpan("", a.bumpFont);
        SpannableString s = new SpannableString("Done"));
        s.setSpan(actionBarTypeFace, 0, s.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        MenuItem item = menu.add(21, 142, 0, s);
        item.setTitle(BaseActivity.isLGDevice() ? "Done") : s);
        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        // fix android formatted title bug
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2 && item.getTitleCondensed() != null) {
            item.setTitleCondensed("Done"));
        }
    }

项目字体通常为白色,但在Lollipop上为黑色。任何人都知道这是什么原因,我该如何解决?

1 个答案:

答案 0 :(得分:2)

  

任何人都知道原因是什么......

很可能是因为Lollipop前设备和Lollipop设备上的应用主题具有不同的菜单项文字颜色。

  

......我该如何解决?

我已按以下方式更改了应用中菜单项文字颜色的颜色:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:itemTextAppearance">@style/MenuTextAppearance</item>
</style>

<style name="MenuTextAppearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
    <item name="android:textColor">#FFF</item>
</style>

基本上,您需要做的就是制作自己的MenuTextApperance样式并将其设置在应用的主题"android:itemTextAppearance"元素中。