相关疑难解决方法(0)

如何更改选项菜单的背景颜色?

我正在尝试更改选项菜单的默认颜色:白色:我希望选项菜单上的每个项目都有黑色背景.

我在菜单元素中的item元素上尝试了一些类似android:itemBackground ="#000000"的镜头,但它不起作用.

我怎么能做到这一点?

user-interface android layout-inflater

94
推荐指数
9
解决办法
15万
查看次数

操作栏菜单项文本颜色

如何更改菜单项标题的文本颜色.我试着改变它如下

<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)

但它仅更改操作栏标题文本的颜色,而不更改菜单项文本.

android android-menu android-actionbar android-styles

51
推荐指数
5
解决办法
7万
查看次数

无法使用Android操作栏下拉导航更改文本颜色

我正在使用我的操作栏下拉导航,当使用黑暗操作栏时,我无法获得相应文本的合理颜色.动作栏本身是深灰色,文本颜色是黑色,因此很难阅读.

我按照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)能够更改背景颜色下拉列表使得至少黑色文本显示在浅色背景上.但是,我所做的任何事情都不会更改文本颜色本身,无论是对于操作栏中显示的选定项目,还是对于下拉列表中显示的项目.我最好的尝试也看起来很可怕:-(! …

android android-actionbar android-styles

6
推荐指数
2
解决办法
1万
查看次数

更改PopupMenu中单个项目的文本颜色

我有一个用户单击图像时出现的弹出菜单.使用的代码是:

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)

android popupmenu

6
推荐指数
2
解决办法
3718
查看次数

如何在材料设计中更改操作栏的菜单项文本颜色

我正在尝试更新我的记事本应用程序以使用Material Design,即使在较旧的设备上也是如此.

到目前为止我做了什么:

  1. 将库appcompat_v7添加到我的项目中,以支持旧设备上的Material Design
  2. 修改主题AndroidManifest,加入android:theme="@style/Theme.NoteItTheme"<application ... ></application>属性
  3. 在/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)

问题:

你可以在这里看到:

问题

当我展开动作栏的菜单时,文字颜色和背景颜色非常相似.我以前没有这个问题,我如何更改项目文本颜色?

android android-appcompat material-design

4
推荐指数
2
解决办法
2万
查看次数

如何在ActionBARTICALLY中更改ActionBar中的单个操作项文本颜色?

在我的中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,我想动态更改它.

java android android-actionbar

2
推荐指数
1
解决办法
4137
查看次数