2014-11-18 3 views
0

Я пытаюсь стилизовать панель действий. Я имею в виду это link. Я создал простой проект для Android, используя eclipse для проверки настройки. Вот мой Рез/значение/themes.xml файл:Как настроить панель действий

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@style/Theme.AppCompat"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
     <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> 
     <item name="android:actionMenuTextColor">#ff0000</item> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/MyActionBar</item> 
     <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item> 
     <item name="actionMenuTextColor">#ff0000</item> 
    </style> 

    <!-- ActionBar styles --> 
    <style name="MyActionBar" 
      parent="@style/Widget.AppCompat.ActionBar"> 
     <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> 

     <!-- Support library compatibility --> 
     <item name="titleTextStyle">@style/MyActionBarTitleText</item> 
    </style> 

    <!-- ActionBar title text --> 
    <style name="MyActionBarTitleText" 
      parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
     <item name="android:textColor">#00ff00</item> 
     <!-- The textColor property is backward compatible with the Support Library --> 
    </style> 

    <!-- ActionBar tabs text --> 
    <style name="MyActionBarTabText" 
      parent="@style/Widget.AppCompat.ActionBar.TabText"> 
     <item name="android:textColor">#0000ff</item> 
     <!-- The textColor property is backward compatible with the Support Library --> 
    </style> 
</resources> 

Мой манифест выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.testactionbar" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="20" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/CustomActionBarTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

В результате довольно разочаровывающие: screenshot. Стилирование, похоже, не имеет никакого эффекта. Я что-то упускаю?

Edit:

Первоначально я удалил андроид: действие * элементы, потому что я получаю ошибку компиляции и я думал, что те, которые необходимы только для более поздних версий API. Как предложил @Furqan, я убрал и построил снова, и ошибки исчезли! Но теперь Я получаю this:

Элементы меню не изменились.

+0

так что вы хотите – Furqan

+0

Я надеялся изменить цвет текста меню с помощью actionMenuTextColor .. – everydayapps

+0

см. Отредактированный ответ – Furqan

ответ

0

Попробуйте этот код для вашей темы

<!-- the theme applied to the application or activity --> 
<style name="CustomActionBarTheme" 
     parent="@style/Theme.AppCompat"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> 
    <item name="android:actionMenuTextColor">#0000ff</item> 

    <!-- Support library compatibility --> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item> 
    <item name="actionMenuTextColor">#0000ff</item> 
</style> 

<!-- ActionBar styles --> 
<style name="MyActionBar" 
     parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> 

    <!-- Support library compatibility --> 
    <item name="titleTextStyle">@style/MyActionBarTitleText</item> 
</style> 

<!-- ActionBar title text --> 
<style name="MyActionBarTitleText" 
     parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">#0000ff</item> 
    <!-- The textColor property is backward compatible with the Support Library --> 
</style> 

<!-- ActionBar tabs text --> 
<style name="MyActionBarTabText" 
     parent="@style/Widget.AppCompat.ActionBar.TabText"> 
    <item name="android:textColor">#0000ff</item> 
    <!-- The textColor property is backward compatible with the Support Library --> 
</style> 

если какая-либо ошибка очистить свой проект затем запустить Вы можете изменить цвет текста меню легко с помощью SpannableString

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
inflater.inflate(R.menu.your_menu, menu); 

int positionOfMenuItem = 0; // or whatever... 
MenuItem item = menu.getItem(positionOfMenuItem); 
SpannableString s = new SpannableString("My red MenuItem"); 
s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0); 
item.setTitle(s); 
} 
+0

Так много чего узнать .. никогда не слышал о SpannableString – everydayapps

Смежные вопросы