gpt4 book ai didi

Android ToolBar菜单项选中状态颜色(Over flow menu items selected color)

转载 作者:行者123 更新时间:2023-11-29 02:35:09 33 4
gpt4 key购买 nike

我想更改溢出菜单项选定状态文本颜色,如图所示。

OverFlow menu

我尝试将 Activity 样式设置为 <item name="actionMenuTextColor">@color/text_color</item>但这会改变菜单文本的整个颜色,无论它是否被选中。有没有办法通过自定义样式来做到这一点?或者我必须以编程方式执行此操作?

我正在使用 Xamarin.Android

最佳答案

你可以创建一个菜单:

Resource文件夹中创建一个menu文件夹,然后创建一个文件。例如,menu_main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="Add" />
<item
android:id="@+id/remove_item"
android:title="Remove" />
</menu>

然后在您的 Activity 中添加 OnCreateOptionsMenu 方法中的菜单:

public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.menu_main, menu);
return true;
}

public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Resource.Id.add_item:
Toast.MakeText(this, "You Clicked Add", ToastLength.Short).Show();
break;
case Resource.Id.remove_item:
Toast.MakeText(this, "You Clicked Remove", ToastLength.Short).Show();
break;
default:
break;
}
return true;
}

Effect .

更新:

您可以使用 SpannableString 更改 MenuItem 文本的颜色,例如:

public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Resource.Id.add_item:
Android.Text.SpannableString s = new Android.Text.SpannableString(item.ToString());
s.SetSpan(new ForegroundColorSpan(Color.Blue), 0, s.Length(), 0);
item.SetTitle(s);

break;
...
}
}

关于Android ToolBar菜单项选中状态颜色(Over flow menu items selected color),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47525230/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com