如何利用AppCompat改变ActionBar的动作文本颜色文本、颜色、动作、AppCompat

2023-09-12 23:39:08 作者:ヤrú菓méi姷ài簻

我试图改变操作菜单项的文本颜色上的操作栏。使用应用程序兼容性。同时溢出的图标并没有改变太多。下面是我的自定义风格styles.xml文件。

RES /价值/ styles.xml

 <样式名称=AppTheme父=@风格/ Theme.AppCompat.Light>
    <! - 在默认的命名空间设置值,可以影响API等级7-13  - >
    <项目名称=actionBarStyle> @风格/ MyStyledActionBar< /项目>
< /风格>

<样式名称=MyStyledActionBar父=@风格/ Widget.AppCompat.Light.ActionBar>
    <! - 在默认的命名空间设置值,可以影响API等级7-13  - >
    <项目名称=背景> @可绘制/ bg_action_bar< /项目>
    <项目名称=titleTextStyle> @风格/ MyActionBarTitleText< /项目>
    <项目名称=actionMenuTextAppearance> @风格/ MyActionBarMenuText< /项目>
    <项目名称=actionMenuTextColor> @风格/ MyActionBarMenuText< /项目>
    <项目名称=actionOverflowButtonStyle> @风格/ MyActionButtonOverFlow< /项目>
< /风格>

<样式名称=MyActionBarTitleText父=@风格/ TextAppearance.AppCompat.Widget.ActionBar.Title>
    <项目名称=机器人:文字颜色> @色/ font_half_white< /项目>
< /风格>

<样式名称=MyActionBarMenuText父=@风格/ TextAppearance.AppCompat.Widget.ActionBar.Menu>
    <项目名称=机器人:文字颜色> @色/ font_half_white< /项目>
< /风格>

<样式名称=MyActionButtonOverFlow父=@风格/ Widget.AppCompat.Light.ActionButton.Overflow>
    <项目名称=机器人:SRC> @可绘制/ ic_action_search< /项目>
< /风格>
 

RES /值-14 / styles.xml

 <样式名称=AppTheme父=@风格/ Theme.AppCompat.Light>
    <! - 在Android命名空间中设置值会影响API等级14+  - >
    <项目名称=机器人:actionBarStyle> @风格/ MyStyledActionBar< /项目>
< /风格>

<样式名称=MyStyledActionBar父=@风格/ Widget.AppCompat.Light.ActionBar>
    <! - 在Android命名空间中设置值会影响API等级14+  - >
    <项目名称=机器人:背景> @可绘制/ bg_action_bar< /项目>
    <项目名称=机器人:titleTextStyle> @风格/ MyActionBarTitleText< /项目>
    <项目名称=机器人:actionMenuTextAppearance> @风格/ MyActionBarMenuText< /项目>
    <项目名称=机器人:actionMenuTextColor> @风格/ MyActionBarMenuText< /项目>
    <项目名称=机器人:actionOverflowButtonStyle> @风格/ MyActionButtonOverFlow< /项目>
< /风格>

<样式名称=MyActionBarTitleText父=@风格/ TextAppearance.AppCompat.Widget.ActionBar.Title>
    <项目名称=机器人:文字颜色> @色/ font_half_white< /项目>
< /风格>

<样式名称=MyActionBarMenuText父=@风格/ TextAppearance.AppCompat.Widget.ActionBar.Menu>
    <项目名称=机器人:文字颜色> @色/ font_half_white< /项目>
< /风格>

<样式名称=MyActionButtonOverFlow父=@风格/ Widget.AppCompat.Light.Base.ActionButton.Overflow>
    <项目名称=机器人:SRC> @可绘制/ ic_action_search< /项目>
< /风格>
 

RES / colors.xml     #F3F3F3

文本颜色还是黑色不改变为白色。有没有人成功地改变了操作菜单文本颜色。请提出了一些见解。我测试的4.4 Nexus5设备。

解决方案 App Store十岁啦,它是如何开启的移动生态

使用

 <项目名称=机器人:actionMenuTextColor> @色/ font_half_white< /项目>
//添加样式直接
 

相反

 <项目名称=机器人:actionMenuTextColor> @风格/ MyActionButtonStyle< /项目>
 

RES /值-14 / styles.xml

RES /价值/ styles.xml

 <项目名称=actionMenuTextColor> @色/ font_half_white< /项目>
 

我用红色进行测试。见操作菜单项家,就是红色的单元

编辑:

全部code

RES /值-14 / styles.xml

 <资源>

    <! - 
        基本应用主题API 14+。这个主题完全取代
        AppBaseTheme来自RES /价值/ styles.xml和
        RES /值-V11 / styles.xml的API 14+设备。
     - >
    <样式名称=AppBaseTheme父=Theme.AppCompat.Light.DarkActionBar>
        <! -  API 14主题自定义可以去这里。 - >
            <项目名称=机器人:actionMenuTextColor> @色/红色和LT; /项目>
    < /风格>

< /资源>
 

那么在RES /价值/ stles.xml

 <资源>
    <样式名称=AppBaseTheme父=Theme.AppCompat.Light>
        <! -  API 11主题自定义可以去这里。 - >
         <项目名称=actionMenuTextColor> @色/红色和LT; /项目>
    < /风格>

< /资源>
 

在清单

安卓主题=@风格/ AppBaseTheme>

另一个单元

I am trying to change the text color of a action menu item on the action bar. Using app compat. Also the overflow icon doesnt change too. Here is my custom styled styles.xml files.

res/values/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="background">@drawable/bg_action_bar</item>
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_search</item>
</style>

res/values-14/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the android namespace affects API levels 14+ -->
    <item name="android:actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the android namespace affects API levels 14+ -->
    <item name="android:background">@drawable/bg_action_bar</item>
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="android:actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="android:actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.Base.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_search</item>
</style>

res/colors.xml #F3F3F3

The text color still black doesnt change to white. Has anybody successfully changed the action menu text color. Please suggest some insights. I am testing on 4.4 Nexus5 device.

解决方案

Use

<item name="android:actionMenuTextColor">@color/font_half_white</item>
// added style directly 

Instead of

<item name="android:actionMenuTextColor">@style/MyActionButtonStyle</item>

in res/values-14/styles.xml

In res/values/styles.xml

<item name="actionMenuTextColor">@color/font_half_white</item>

I used a Red Color for testing. See the Action menu Item Home that is red in the snap

Edit:

Full Code

In res/values-14/styles.xml

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
            <item name="android:actionMenuTextColor">@color/red</item>
    </style>

</resources>

Then in res/values/stles.xml

  <resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <!-- API 11 theme customizations can go here. -->
         <item name="actionMenuTextColor">@color/red</item>
    </style>

</resources>

In manifest

android:theme="@style/AppBaseTheme" >

Another snap