2012-07-30 40 views
5

造型是我對android平臺知識進行改進的地方。鑑於我一直試圖做一個簡單的改變整個上午,並無法實現它。ActionSherlockBar造型 - PopupMenu

我想更改操作欄中溢出菜單的樣式。我已經能夠改變背景顏色,並添加動畫,以便在單擊時淡化爲選定的顏色。但對於我的生活,我無法改變文字顏色。

下面是兩個屏幕截圖,一個使用Theme.Sherlock,另一個使用Theme.Sherlock.Light。

Theme.Sherlock - 這是我定製的當前設置。我想要的是溢出(又名android:popupmenu)在全息主題(如下),理想情況下,我可以改變文本顏色。

Theme.Sherlock

Theme.Sherlock.Light - 這一主題表明,我希望看到溢出菜單的風格。但是,如紅色突出顯示,溢出按鈕是錯誤的顏色,並且此主題也繪製了一條水平線。

Theme.Sherlock.Light

我不知道這是否是最好/容易改變Theme.Sherlock與彈出的問題,或Theme.Sherlock.Light與溢流圖標和線路問題。該應用程序是一個「輕」的主題,所以選項二可能是長期更好的選擇,但我會接受一個答案,可以通過更改任何主題來解決問題。

p.s.你在哪裏找到改變主題/樣式的屬性列表,在eclipse中自動完成是非常不完整的。

更新

這實際上是對原生的動作條的,我回來了同樣的問題,但不再支持2.3或以下的更新。

<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> 

回答

3

這個答案很可能是未來的太晚了幫助,但那些誰可能碰到這個問題絆倒。我覺得有趣的是你能夠改變溢出的背景顏色。我發現很難弄清楚,而改變文字卻非常簡單。只需覆蓋自定義主題中的android:itemTextAppearance值。

<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

我們從未找到過解決方案。但我後來搬到了另一家公司。下次我看到其他開發人員時,我會提出你的答案。 – JonWillis 2013-03-03 19:34:44

+1

哦,我的上帝,我不能滿足這個足夠的。兩天試圖用幾十種方法來改變這種顏色,最後是一種解決方案。 – Draiken 2013-03-06 14:29:24

2

我不熟悉ActionBarSherlock,但你可以找到你的硬盤標準的溢出圖標的文件夾

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

中,他們被稱爲ic_menu_moreoverflow_normal_holo_dark.pngic_menu_moreoverflow_normal_holo_light.png

或者你可以在網上找到他們here

我相信左邊的圓也是可繪製的。看看res\drawable

+0

嗨,感謝您的建議。鑑於一個主題可以使這成爲可能,我寧願這樣做,比添加另一個可繪製的形象的項目。只是仍在努力研究如何做到這一點 – JonWillis 2012-07-31 08:23:26

+0

在2年後回到Android,回到本機操作條中的同樣的事情。你的位置上的圖標,但現在我瞭解更多樣式。只需添加你的風格我已經添加到問題。 – JonWillis 2014-09-27 18:42:20

2

簡單做到以下幾點:

。在您的應用程序的主題風格theme.xml添加此項目:

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

。在styles.xml中添加這種新樣式:

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

在樣式中,您可以根據需要覆蓋文本大小或其他參數。