更改工具栏菜单项的颜色(非隐藏行动)
说我有一个菜单(options_menu.xml)类似以下内容:更改工具栏菜单项的颜色(非隐藏行动)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_login"
android:title="Login"
app:showAsAction="always"/>
</menu>
我膨胀到新的工具栏项目
mToolbar.inflateMenu(R.menu.options_home);
这导致类似
有没有办法来改变THI s文字颜色没有使用图像,更改工具栏文本颜色的其余部分,或者通过向工具栏添加自定义视图?寻找minSdk 15(appcompat)的答案。
更新:
我的相关风格:
<style name="AppTheme" parent="AppTheme.Base">
<item name="actionMenuTextColor">@color/ww_red</item>
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/red</item>
<item name="colorAccent">@color/theme_accent</item>
<item name="android:textColor">@color/text_dark</item>
<item name="android:colorEdgeEffect">@color/gray</item>
</style>
在你的主题文件,你必须把这个:
<style name="AppTheme.ActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="actionMenuTextColor">@color/text_color</item>
...
</style>
并将此主题应用于您的工具栏视图这样的:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:layout_gravity="top"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:theme="@style/AppTheme.ActionBar"/>
机器人:主题= “@风格/ AppTheme.ActionBar”没有工具栏
我收回我先前的评论。这样可行! – loeschg 2015-02-18 19:24:01
应用程序:主题已被弃用。 – hungryghost 2015-05-31 09:52:48
是的,我更新了。谢谢 – koni 2015-06-01 10:07:28
,放置以下:
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:titleTextStyle">@style/MyActionBar.TitleTextStyle
<item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
<item name="android:actionMenuTextColor">@color/action_bar_red</item>
</style>
<style name="MyActionBar.TitleTextStyle"
parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#F0F</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">24dip</item>
</style>
<style name="MyActionBar.MenuTextStyle"
parent="android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
<item name="android:textColor">#F0F</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">24dip</item>
</style>
你可以在上面的样式变化项目,以满足您的要求。我没有为颜色添加单独的样式。正如你可能看到的,我只是将红色(我已经在我的颜色文件中声明)分配给它。您可以根据需要进行更改。
看起来这是Holo特有的。我正在使用新的棒棒糖工具栏。 – loeschg 2015-02-06 15:13:42
反对票?认真!这个问题从来没有提到它是用于棒棒糖的..我只是给出了关于OP如何去做的一般性建议..接受的解决方案也类似于我在两周前提出的建议..太糟糕了..残酷的世界..!!非常鼓舞贡献者..竖起大拇指.. – 2015-02-19 18:25:48
不知道您是否可以通过造型设置具体的背景以区分MenuItem
,但您可以仅为为MenuItem
。
首先创建一个像item_av.xml
布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:padding="5dp">
<TextView
android:text="LOGIN"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textSize="12sp"
android:gravity="center"/>
</LinearLayout>
然后将其设置为你的MenuItem
在onCreateOptionsMenu
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem item = menu.findItem(R.id.action_login);
item.setActionView(R.layout.item_av);
return true;
}
对于我忘了这行,这工作:设置 “机器人:文字颜色”
<style name="AppTheme.ActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
...
<!--This would set the menu item color-->
<item name="android:textColor">#000</item>
...
</style>
加入这行到你的基地主题style.xml:
<item name="android:actionMenuTextColor">@color/yourColor</item>
创建映像科eping背景颜色相同的工具栏和设置textColor任何你想 – Apurva 2015-02-17 18:18:25
@Apurva我想这会工作,但我想找到一个解决方案,避免需要自定义资产为每个文本“按钮”添加。 – loeschg 2015-02-17 18:22:09
@loeschg“登录”菜单项是否与其他菜单项颜色不同? – Vikram 2015-02-18 16:15:06