【问题标题】:Customize Android ActionBar自定义 Android ActionBar
【发布时间】:2012-12-24 13:07:26
【问题描述】:

我搜索了很多,但无法解决我的问题。 我想自定义我的应用的操作栏。

我是这样调用actiong的:

public boolean onCreateOptionsMenu(Menu menu) {
 super.onCreateOptionsMenu(menu);
 /*
  *  menu.add(int groupId, int itemId, int order, CharSequence title);
  */
 MenuItem menu0 = menu.add(0, 0, 0, "Action Item 0");
 {
  menu0.setIcon(R.drawable.ic_launcher);
  menu0.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
 }
 return true;
}

还有我的 style.xml:

<resources>

<style name="AppBaseTheme" parent="android:Theme.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="AppTheme" parent="AppBaseTheme">

</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:textColor">#CCCCCC</item>
</style>

但是 textcolor 保持默认(# FFF),已经尝试了所有方法并且不知道我哪里出错了,我感谢任何帮助。谢谢!

【问题讨论】:

  • 你到底想改变什么颜色?操作菜单?
  • ActionBar中App Title的颜色

标签: android styles android-actionbar


【解决方案1】:

试试这个:

<style name="AppBaseTheme" parent="android:Theme.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<style name="AppTheme" parent="AppBaseTheme">

</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:textColor">#CCCCCC</item>
    <item name="textColor">#CCCCCC</item>
</style>

有时由于您使用的 API,删除 android: 有效

也尝试在color.xml 中定义颜色并使用这种方式:

 <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:textColor">@color/mColor</item>
        <item name="textColor">@color/mColor</item>
 </style>

编辑:

<style name="MyActionBar"parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextColor">@style/MyTheme.ActionBar.TitleTextColor</item>
</style>

<style name="MyActionBar.TitleTextColor" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/mColor</item>
</style>

【讨论】:

  • 我正在使用 min API 8。Eclipse 不让我运行。在没有“android:”的项目中显示:“找不到与给定名称匹配的资源:attr 'textColor'”
  • Eclipse 无法识别 attr "android:titleTextColor",我不明白为什么...
【解决方案2】:

谢谢你们,我按照本教程做了我想做的事:http://shreymalhotra.me/blog/tutorial/android/android-create-custom-themes-for-your-apps/

在 onCreate() 上添加了这个:

final ActionBar bar = getActionBar();

要更改标题颜色,我的 style.xml 如下所示:

    <style name="Theme.MyAppTheme" parent="android:style/Theme.Holo">
    <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item>
</style>

<style name="Theme.MyAppTheme.ActionBar" parent="android:style/Widget.Holo.ActionBar">
    <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#ccc</item>
</style>

Obs:我不确定,但我认为我的第一个样式将适用于 oncreate() 方法中的那一行。

【讨论】:

  • 要么解释/总结链接中的内容(防止链接腐烂!仅供参考),要么这应该是评论而不是答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2012-12-17
相关资源
最近更新 更多