2012-01-26 52 views
23

'da ActionBar'ın dokunma efekt rengini nasıl değiştirebilirim Bir ActionBar öğesine dokunduğunuzda rollover efektinin rengini değiştirmeye çalışıyorum. 4.0.2 ile Galaxy Nexus'umda, farklı bir renkte olmasını istediğim turkuaz renk gölgelendirmesi var.Android 3.0 ve üstü

Net olmak gerekirse, burada gezinme sekmeleri değil, ActionBar öğeleri hakkında konuşuyorum.

Uyumluluk kitaplığı altında çalışıyorum, ancak Android 3.0 ve üstü için, yani "gerçek" ActionBar için, bunu nasıl yapacağımı anlayamıyorum.

Bunun nasıl ve ne şekilde gerçekleştirilebileceğini bilen var mı?

cevap

45

Yerel işlem çubuğu, eylem öğesi arka plan resmi için tema özniteliği selectableItemBackground'u kullanır. Bu bir devlet listesi çekilebilir olmalıdır.

<style name="Theme.Holo"> 
    <!-- bunch of things --> 
    <item name="android:selectableItemBackground">@android:drawable/item_background_holo_dark</item> 
    <!-- bunch of things --> 
</style> 

Ve çekilebilir XML::

İşte Theme.Holo yılında ilanıdır hızlı tepki için

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
      android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> 
    <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" /> 
    <item android:state_focused="true" android:state_enabled="false"        android:drawable="@drawable/list_selector_disabled_holo_dark" /> 
    <item android:state_focused="true"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" /> 
    <item android:state_focused="false"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" /> 
    <item android:state_focused="true"                android:drawable="@drawable/list_focused_holo" /> 
    <item                       android:drawable="@color/transparent" /> 
</selector> 
+0

teşekkürler. Ancak, bu öznitelik stili üzerinde, Hata alıyorum: Verilen adla eşleşen kaynak bulunamadı: attr 'selectableItemBackground'. Bu özelliği nasıl veya nerede geçersiz kılabilirim? – Alf

+0

Üzgünüz, kullanacağınız ad = "android: selectableItemBackground" '. Varsayılan paketi zaten 'android' olduğundan, temanın Android platform sürümünde belirtilmemiş. Cevabı güncelledim. –

+0

Mükemmel çalışıyor, çok teşekkürler! – Alf

İlgili konular