2013-10-12 10 views
4

Решения, предлагаемое здесь не работает для меня, потому что требует api14 и я хочу, чтобы поддержать ранние версии:Как изменить цвет фона значка на панели действий при нажатии?

Change action background color when selected (ActionBarSherlock)

Прямо сейчас, когда я нажимаю элемент на панели действий с моим пальцем он синеет и я не хочу, чтобы это произошло.

Информация: Я использую SherlockActionBar.

и это не работает, потому что она требует api11:

 ImageView icon = (ImageView) findViewById(android.R.id.home); 
     icon.setBackgroundColor(getResources().getColor(R.color.black)); 

Вот мой action_bar_items.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/abFeed" 
     android:icon="@drawable/ic_action_content_paste" 
     android:title="@string/abFeed" 
     android:showAsAction="always"/> 
    <item 
     android:id="@+id/abNotifications" 
     android:icon="@drawable/ic_action_social_cc_bcc" 
     android:title="@string/abNotifications" 
     android:showAsAction="always"/> 
    <item 
     android:id="@+id/abAddNewItem" 
     android:icon="@drawable/ic_action_content_new" 
     android:title="@string/abAddNewItem" 
     android:showAsAction="always"/> 
    <item 
     android:id="@+id/abSearch" 
     android:icon="@drawable/ic_action_action_search" 
     android:title="@string/abSearch" 
     android:showAsAction="always"/> 
</menu> 

EDIT: Вот что помогло мне решить эту проблему, благодаря Марио Lenci:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@FF000000" /> <!-- pressed --> 
<item android:drawable="@android:color/transparent" /> <!-- default --> 
</selector> 

и в стилях: xml

<style name="Theme.SherlockCustom" parent="@style/Theme.Sherlock.Light"> 
    <item name="actionBarItemBackground">@drawable/action_bar_item_background</item> 
    <item name="android:icon">@android:color/transparent</item> 
    <item name="android:minWidth">0dp</item> 
    <item name="android:padding">0dp</item> 
</style> 
+0

как вы добавляете элементы в панель действий, через menu.xml ?? –

+0

да, я приложу его к вопросу –

ответ

3

вы должны установить этот атрибут в прикладной/Деятельности Основной темы

<item name="android:actionBarItemBackground">@drawable/your_drawable</item> 

с панелью действий Шерлока вы также должны установить

<item name="actionBarItemBackground">@drawable/your_drawable</item> 

вы можете найти хорошую документацию по ActionBar styling here

+0

android: actionBarItemBackground требует уровня API 14 (текущий минимум 10) –

+0

да, я знаю, но вы используете ActionBarSherlok для решения этой проблемы. Итак, вы определяете оба атрибута (с и без android:), и правый будет загружен в соответствии с устройством –

+0

, но Im получает красную ошибку xml, и я не могу запустить проект –

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