2012-07-30 18 views
5

Styling, android platform hakkındaki bilgilerimi geliştiren bir yerdir. Her sabah basit bir değişiklik yapmaya çalışıyorum ve bunu başaramadım.ActionSherlockBar Şekillendirici - PopupMenu

İşlem çubuğunda taşma menüsünün stilini değiştirmek istiyorum. Arka plan rengini değiştirebildim ve animasyon ekledim, böylece tıklandığında seçili bir renge dönüşecek. Ama hayatım boyunca metin rengini değiştiremiyorum.

Aşağıda iki ekran görüntüleri, Theme.Sherlock ve diğer kullanılarak Theme.Sherlock.Light kullanılarak biridir.

Theme.Sherlock - Bu, özelleştirdiğim geçerli ayarım. İstediğim, (aşağıdaki gibi) holo temasında olmak için taşma (aka android: popupmenu) ve ideal olarak metin rengini değiştirebileceğim. Bu tema görmek istediğim taşma menüsünün stilini gösterir - Theme.Sherlock.Light

Theme.Sherlock

. Ancak, kırmızı renkte vurgulandığı gibi, taşma düğmesi yanlış renktir ve bu tema aynı zamanda yatay bir çizgi çizer.

Theme.Sherlock.Light

Bence en iyisi olup olmadığını bilmiyorum/kolay taşma simgesi ve çizgi konuyla açılan konuyla Theme.Sherlock değiştirmek ya Theme.Sherlock.Light için. Uygulama bir "Işık" temasıdır, bu yüzden seçenek iki muhtemelen uzun vadeli daha iyi bir seçimdir, ancak her iki temayı değiştirerek sorunu çözebilecek bir cevabı kabul edeceğim.

p.s. Temayı/stilleri değiştirmek için özelliklerin bir listesini nerede bulabilirsiniz, otomatik tamamlama tutulması çok eksik.

Güncelleme Bu aslında doğal eylem tekrar aynı probleme im olarak barlar, ama artık aşağıda 2.3 veya desteklenmesi için bir güncelleme olup

.

<style name="AppTheme" parent="android:Theme.Holo.Light"> 
    <item name="android:actionOverflowButtonStyle">@style/OverFlow</item> 
</style> 

<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow"> 
    <item name="android:src">**Insert your icon here**</item> 
</style> 

cevap

3

yardımıyla Theme.Sherlock stilini geçersiz kılmak için çalış, ama bu soruya rastlarsanız olabilir olanlara. Taşmanın arka plan rengini değiştirebildiğinizi ilginç buluyorum. Metnin değiştirilmesinin oldukça kolay olduğu anlaşılırken, bunu anlamanın çok zor olduğunu buldum. Özel temanızdaki android:itemTextAppearance değerini geçersiz kıl.

<item name="android:itemTextAppearance">@style/your_new_text_appearance</item> 

<style name="your_new_text_appearance"> 
    <item name="android:textColor">@color/red</item> 
</style> 
+0

Hiçbir zaman bir çözüm bulamadık. Ama o zamandan beri farklı bir şirkete taşındım. Diğer geliştiricileri bir daha gördüğümde cevabınızı ileri süreceğim. – JonWillis

+1

oh aman tanrım, bunu yeterince kabul edemem. İki gün o rengi değiştirmek için düzinelerce yolu denedim ve sonunda bir çözüm. – Draiken

2

Ben ActionBarSherlock aşina değilim, ama klasör

path\to\android\android-sdk\platforms\android-api-level\data\res\drawable-resolution 

daki sabitdiskte standart Taşma simgeleri bulabilir ve onlar Alternatif

ic_menu_moreoverflow_normal_holo_dark.png ve ic_menu_moreoverflow_normal_holo_light.png denir Onları online here bulabilirsiniz.

Sol dairenin de çizilebilir olduğuna inanıyorum. res\drawable'un içine bakın.

+0

Merhaba, öneriniz için teşekkürler. Bir temanın bunu mümkün kılabileceği düşünülürse, projeye başka bir çekilebilir resim eklemek yerine bunu yapmayı tercih ederim. Sadece hala nasıl yapılacağını çözmeye çalışıyorum – JonWillis

+0

Bu 2 yıl sonra ve geri Android'de yanıt olarak, yerel eylem çubuklarında aynı şey geri im. Simgelerindeki yeriniz var, ama şimdi biraz daha fazla şekillendirmeyi anlıyorum. Sorunuza eklediklerimi stilinize ekleyin. – JonWillis

2

Basit aşağıdakileri yapın:

.

<item name="popupMenuStyle">@style/PopupMenu</item> 

: Uygulamanız tema tarzında theme.xml bu öğe ekleyin. istediğiniz kadar metin boyutunu veya başka parametreler geçersiz kılabilir tarzında

<style name="PopupMenu" parent="@style/Widget.Sherlock.Light.ListPopupWindow"> 
    <item name="android:textSize">14sp</item> 
</style> 

: styles.xml bu yeni stil eklemek.

İlgili konular