2013-12-16 83 views
2

我將我的應用程序的UI更改爲綠色。在ActionBar中,我使用ShareActionProvider將數據共享給其他用戶,但此菜單項的顏色與其他菜單項不同。但是,其下拉列表視圖具有正確的顏色。修改樣式效果不好

enter image description here enter image description here enter image description here

我跑我的薑餅的應用程序,所以當我按下菜單鍵,會出現一個菜單項,但它也有錯誤的顏色。

enter image description here

我用Android Action Bar Style Generator,但有我丟失的東西。這是我在/ RES /值碼:

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- the theme applied to the application or activity --> 
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarItemBackground">@drawable/selectable_background_newtheme</item> 
    <item name="actionBarStyle">@style/ActionBar.Solid.NewTheme</item> 
    <item name="popupMenuStyle">@style/PopupMenu.NewTheme</item> 
    <item name="dropDownListViewStyle">@style/DropDownListView.NewTheme</item> 
    <item name="actionDropDownStyle">@style/DropDownNav.NewTheme</item> 

    <!-- Light.DarkActionBar specific --> 
    <item name="actionBarWidgetTheme">@style/NewTheme.Widget</item> 
</style> 



<!-- ActionBar style --> 
<style name="ActionBar.Solid.NewTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="background">@drawable/action_bar_gradient</item> 
</style> 

<style name="PopupMenu.NewTheme" parent="@style/Widget.AppCompat.PopupMenu"> 
    <item name="android:popupBackground">@drawable/background_gradient</item> 
</style> 

<style name="DropDownListView.NewTheme" parent="@style/Widget.AppCompat.ListView.DropDown"> 
    <item name="android:listSelector">@drawable/selectable_background_newtheme</item> 
</style> 

<style name="DropDownNav.NewTheme" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar"> 
    <item name="android:background">@drawable/spinner_background_ab_newtheme</item> 
    <item name="android:dropDownSelector">@drawable/selectable_background_newtheme</item> 
</style> 

<!-- this style is only referenced in a Light.DarkActionBar based theme --> 
<style name="NewTheme.Widget" parent="@style/Theme.AppCompat"> 
    <item name="popupMenuStyle">@style/PopupMenu.NewTheme</item> 
    <item name="dropDownListViewStyle">@style/DropDownListView.NewTheme</item> 
</style> 

是否有任何缺失的項目?在此先感謝

+0

藍色漸變與淺藍色邊框的繪製是你的? –

+0

@RickFalck否,它是從父項繼承的。 – David

+0

所以,你需要找出什麼風格屬性使用它並覆蓋它? –

回答

0

我想我可以幫你解決你的薑餅問題。 該菜單被稱爲「面板」中的AppCompat風格&主題.XML文件。

所以用自己選擇的顏色覆蓋它,這是我的建議:

在您的自定義主題,CustomActionBarTheme,加入這一行:

<item name="panelMenuListTheme">@style/Theme.NewTheme.CompactMenu</item> 

並添加這兩種風格:

<style name="Theme.NewTheme.CompactMenu" parent="@style/Theme.AppCompat.CompactMenu"> 
    <item name="android:listViewStyle">@style/myCustomMenuStyle</item> 
</style> 

<style name="myCustomMenuStyle" parent="@style/Widget.AppCompat.ListView.Menu"> 
    <item name="android:listSelector">@drawable/newtheme_list_selector_holo_light</item> 
</style> 

注意:@drawable/newtheme_list_selector_holo_light是我從Android Holo Colors Generator獲得的xml資源。

我建議你使用的網站,順便說一句,你只需要「列表選擇」的資源,在這種情況下,並抓住從它輸出ZIP文件中的以下資源,並把它們放在你的可繪製的文件夾。

具體來說:

newtheme_list_selector_holo_light.xml>在res /抽拉

newtheme_list_selector_background_transition_holo_light.xml>在res /抽拉

而下面的MDPI,HDPI,xdpi和xxdpi .9.png資源:

newtheme_list_selector_disabled_ho lo_light.9.png

newtheme_list_pressed_holo_light.9。PNG(類似行動爲png條發生器產生)

newtheme_list_longpressed_holo.9.png

newtheme_list_focused_holo.9.png(類似行動爲png條發生器產生)

3

我終於得到它自己工作。我不得不補充:在值-V14

在*
<item name="android:listChoiceBackgroundIndicator">@drawable/selectable_background_realestate</item> 

themes_base.xml *和

<item name="listChoiceBackgroundIndicator">@drawable/selectable_background_realestate</item> 

在themes_base.xml價值觀正確的高亮顏色按列表項時。

我還必須在themes_base.xml(values和values-v14)中更改actionBarItemBackground以引用我的drawable,以便共享圖標可以獲得相同的高亮。

最後得到下拉菜單項的正確的顏色,我不得不改變安卓popupBackground到@繪製/ menu_dropdown_panel_realestate在styles_base.xml(值和值-V14)爲Widget.AppCompat.Base.ListPopupWindow使用Android Asset Studio的程序兼容性

+0

我試過了你的建議,但是選項菜單的backgorund沒有改變我已經使用ListPopupWindow – Hunt

0

過了一會但是它可以幫助生成

我在回答中引用的可繪製。薑餅,當你按下菜單鍵,它出現在底部可以通過下面的屬性itemBackground可以自定義菜單項:

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:itemBackground">@drawable/selectable_background_newtheme</item> 
</style> 

然後,顯然定製ShareActionProvider項目壓制,你需要這個屬性:

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:selectableItemBackground">@drawable/selectable_background_newtheme</item> 
</style>