2013-08-06 11 views
5

Sto utilizzando la libreria di supporto v7 nel mio progetto. Le mie impostazioni manifest sono:Android: menu di overflow dello styling nella barra delle azioni

android:minSdkVersion="7" 
    android:targetSdkVersion="15" 

Ho utilizzato Android Generatore di stile barra di azione per generare stili per la mia barra delle azioni. Il problema è che mentre tutto funziona per gli apis più recenti, il mio menu di overflow non cambia in apis basso (testato su emulatore 2.2 e desiderio dispositivo reale 2.3.3 htc).

1
(questo dovrebbe avere sfondo rosso)

è articoli menu di overflow loading in qualche altro componente, come dialogo trottola o qualcosa (SRY se questo suona muto)? Perché gli stili per one api (ex 15) non si applicano ad altri (ex 8), e c'è qualcosa che posso fare per avere lo stesso menu di overflow per tutte le versioni di API.

Questo è il mio stile originale generato da Action Bar Style Generator che ho ottimizzato molto ma senza successo.

<resources> 

<style name="Theme.Example" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarItemBackground">@drawable/selectable_background_example</item> 
    <item name="popupMenuStyle">@style/PopupMenu.Example</item> 
    <item name="dropDownListViewStyle">@style/DropDownListView.Example</item> 
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.Example</item> 
    <item name="actionDropDownStyle">@style/DropDownNav.Example</item> 
    <item name="actionBarStyle">@style/ActionBar.Solid.Example</item> 
    <item name="actionModeBackground">@drawable/cab_background_top_example</item> 
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_example</item> 
    <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Example</item> 

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

</style> 

<style name="ActionBar.Solid.Example" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="background">@drawable/ab_solid_example</item> 
    <item name="backgroundStacked">@drawable/ab_stacked_solid_example</item> 
    <item name="backgroundSplit">@drawable/ab_bottom_solid_example</item> 
    <item name="progressBarStyle">@style/ProgressBar.Example</item> 
</style> 

<style name="ActionBar.Transparent.Example" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="background">@drawable/ab_transparent_example</item> 
    <item name="progressBarStyle">@style/ProgressBar.Example</item> 
</style> 

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

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

<style name="ActionBarTabStyle.Example" parent="@style/Widget.AppCompat.ActionBar.TabView"> 
    <item name="android:background">@drawable/tab_indicator_ab_example</item> 
</style> 

<style name="DropDownNav.Example" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar"> 
    <item name="android:background">@drawable/spinner_background_ab_example</item> 
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item> 
    <item name="android:dropDownSelector">@drawable/selectable_background_example</item> 
</style> 

<style name="ProgressBar.Example" parent="@style/Widget.AppCompat.ProgressBar.Horizontal"> 
    <item name="android:progressDrawable">@drawable/progress_horizontal_example</item> 
</style> 

<style name="ActionButton.CloseMode.Example" parent="@style/Widget.AppCompat.ActionButton.CloseMode"> 
    <item name="android:background">@drawable/btn_cab_done_example</item> 
</style> 

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

risposta

3

ho fatto in questo modo:

<style name="Theme.yourapp" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarWidgetTheme">@style/Theme.yourapp.Widget</item> 
</style> 

<style name="Theme.yourapp.Widget" parent="@style/Theme.AppCompat"> 
    <item name="android:textColor">@android:color/black</item> 
</style> 
2

Per semplicità, il android: namespace si riferisce a nulla integrato nel sistema operativo, mentre nulla senza android: come spazio dei nomi potrebbe riguardare l'applicazione (e le librerie che si utilizza). La maggior parte, se non tutte, le librerie di supporto per lo ActionBar proveranno a utilizzare l'implementazione nativa di ActionBar e quindi useranno gli attributi dello spazio dei nomi android: negli stili. Quando l'ActionBar nativo non è disponibile, utilizzerà l'implementazione di librerie e gli attributi con nomi diversi da android:. Questo è il motivo per cui è necessario specificare ogni attributo con e senza lo spazio dei nomi android:.

+0

in realtà ho fatto. senza alcun effetto però .. ho perso un paio d'ore per scoprire che i pennarelli di rimozione rimuovono l'eclissi di avvertimento che mi ha dato. puoi specificare gli attributi che devono essere nuovamente risolti con Android: namespace .. forse sto facendo qualcosa di sbagliato. – BlastFire

+0

Stai usando le giuste directory? dovresti avere almeno 'values',' values-v11' con attributi namespace android in 'values-11'. – JRomero

+0

beh, ho due directory di valori generate dal generatore di stili AB. valori e valori-v14. in valori gli attributi sono utilizzati senza android: namespace e in valori-v14 CON Android: – BlastFire