我根据本指南制作了一个菜单:https://www.youtube.com/watch?v=aGO-xcpJUBs
如何更改菜单项的文字颜色和背景?
我的档案:
styles.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MyStyle"
parent="@android:style/Theme.DeviceDefault">
</style>
</resources>
2.menu.xml
<?xml version="1.0" encoding="utf-8" ?>
<menu tools.context=".MainActivity"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/name"
android:showAsAction="always"
android:id="@+id/iname"/>
<item android:title="@string/email"
android:showAsAction="always"
android:id="@+id/iemail"/>
</menu>
添加此行不会提供任何内容:
android:textColor="@android:color/black"
答案 0 :(得分:0)
更改菜单项的背景
您可以在styles.xml
中添加一个属性来更改菜单背景颜色:
<item name="android:itemBackground">#FFFCF8FA</item>
这是我的styles.xml
:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="Theme.MyTheme" parent="Theme.MyTheme.Base">
</style>
<!-- Base theme applied no matter what API -->
<style name="Theme.MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionModeOverlay">true</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:itemBackground">#FF8898F1</item>
</style>
</resources>
更改菜单项的文本颜色
您可以通过编程方式实现此功能,使用MenuItem
代替SpannableString
轻松更改string
文字的颜色。
这是我的代码:
public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.menu_form, menu);
for (int i = 0; i < menu.Size(); i++)
{
IMenuItem item = menu.GetItem(i);
Android.Text.SpannableString spanString = new Android.Text.SpannableString(menu.GetItem(i).ToString());
spanString.SetSpan(new ForegroundColorSpan(Android.Graphics.Color.Red), 0, spanString.Length(), 0); //fix the color to red
item.SetTitle(spanString);
}
return true;
}