我正在尝试更改选项菜单的默认颜色:白色:我希望选项菜单上的每个项目都有黑色背景.
我在菜单元素中的item元素上尝试了一些类似android:itemBackground ="#000000"的镜头,但它不起作用.
我怎么能做到这一点?
如何更改菜单项标题的文本颜色.我试着改变它如下
<style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但它仅更改操作栏标题文本的颜色,而不更改菜单项文本.
我正在使用我的操作栏下拉导航,当使用黑暗操作栏时,我无法获得相应文本的合理颜色.动作栏本身是深灰色,文本颜色是黑色,因此很难阅读.
我按照Action Bar开发人员指南中的基本说明进行操作,因此我的代码很简单
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
// TODO
return false;
}
};
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(mSpinnerAdapter, navigationListener);
Run Code Online (Sandbox Code Playgroud)
而我的styles.xml很简单
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
我认为这应该给了我一些明智的东西,但如下图所示,它在深灰色的背景上显示为黑色文字,所以它没有用.

我尝试过使用styles.xml文件来尝试解决问题.我最好的尝试是以下
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionDropDownStyle">@style/myActionDropDownStyle</item>
<item name="android:actionBarStyle">@style/myActionBar</item>
</style>
<style name="myActionDropDownStyle" parent="android:style/Widget.Holo.Light.Spinner">
<item name="android:background">@color/LightCyan</item>
</style>
<style name="myActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:titleTextStyle">@style/myActionBar.titleTextStyle</item>
</style>
<style name="myActionBar.titleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse">
<item name="android:textColor">@color/Orange</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是(1)能够将应用程序标题的文本颜色更改为橙色,(2)能够将操作栏中所选导航项的背景颜色更改为浅蓝色,(3)能够更改背景颜色下拉列表使得至少黑色文本显示在浅色背景上.但是,我所做的任何事情都不会更改文本颜色本身,无论是对于操作栏中显示的选定项目,还是对于下拉列表中显示的项目.我最好的尝试也看起来很可怕:-(! …
我有一个用户单击图像时出现的弹出菜单.使用的代码是:
PopupMenu popupMenu = new PopupMenu(mContext, mImageView);
popupMenu.setOnMenuItemClickListener(MyClass.this);
popupMenu.inflate(R.menu.menu_my_class_options);
popupMenu.show();
Run Code Online (Sandbox Code Playgroud)
菜单有三个动作,我希望其中一个文本的颜色为红色(而不是黑色).
那可能吗?我已经找到了一些答案(例如,这里),显示如何使用活动的选项菜单执行此操作,但他们需要访问该onCreateOptionsMenu方法...
提前致谢.
- 编辑 -
菜单文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_edit"
app:showAsAction="ifRoom|withText"
android:title="@string/action_edit_address"
android:visible="true"/>
<item
android:id="@+id/item_retake_photo"
app:showAsAction="ifRoom|withText"
android:title="@string/action_retake_photo"
android:visible="true"/>
<item
android:id="@+id/item_delete"
app:showAsAction="ifRoom|withText"
android:title="@string/action_delete_shipment"
android:visible="true"/>
</menu>
Run Code Online (Sandbox Code Playgroud) 我正在尝试更新我的记事本应用程序以使用Material Design,即使在较旧的设备上也是如此.
到目前为止我做了什么:
android:theme="@style/Theme.NoteItTheme"到<application ... ></application>属性在/res/values/themes.xml中创建主题:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.NoteItTheme" parent="Theme.AppCompat.Light">
<!-- Here we setting appcompat’s actionBarStyle -->
<!-- <item name="actionBarStyle">@style/MyActionBarStyle</item> -->
<!-- ...and here we setting appcompat’s color theming attrs -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="android:textColorPrimary">@color/text</item>
<item name="colorAccent">@color/ui</item>
<!-- The rest of your attributes -->
</style>
Run Code Online (Sandbox Code Playgroud)
问题:
你可以在这里看到:

当我展开动作栏的菜单时,文字颜色和背景颜色非常相似.我以前没有这个问题,我如何更改项目文本颜色?
在我的中ActionBar,我有一个MenuItem属性showAsAction="always",如下图所示.根据用户与服务器的连接,我将更改项目的文本和颜色.

目前,我可以非常轻松地更改项目的文本onPrepareOptionsMenu(...):
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_connection);
if(mIsConnected) {
item.setTitle(R.string.action_connected);
} else {
item.setTitle(R.string.action_not_connected);
}
return super.onPrepareOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
这很有效,如果可能的话,我也希望在这里更改文本的颜色.我看过很多关于如何将所有溢出项目或标题更改为ActionBar自身的文章,但没有关于改变单个行动项目的任何内容.当前颜色设置为xml,我想动态更改它.