2013-08-06 80 views
5

我在我的項目中使用v7支持庫。我的清單設置是:Android:樣式溢出菜單在操作欄

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

我使用了Android Action Bar Style Generator來爲我的Action Bar生成樣式。問題是,雖然一切適用於最新的apis,但我的溢出菜單在低apis(在仿真器2.2和真實設備2.3.3 htc渴望測試)中不會改變。

1
(這應該爲紅色背景)

是菜單溢出加載項類似微調對話框或東西(如果這聽起來愚蠢的SRY)一些其他的成分?爲什麼一個api的樣式(例如15)不適用於其他(例如8),並且有什麼我可以做的就是爲所有api版本都有相同的溢出菜單。

這是我最初從Action Bar Style Generator生成的樣式,我調整了很多但沒有成功。

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

回答

3

我就是這麼做的:

<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

爲了簡單起見,android:命名空間屬於內置到操作系統,而沒有任何android:作爲命名空間將屬於您的應用程序(和你正在使用的庫)任何東西。 ActionBar的大多數(即使不是全部)支持庫都會嘗試使用本機ActionBar實現,因此在您的樣式中使用android:命名空間屬性。當本機ActionBar不可用時,它將使用庫實現和非命名空間屬性。這就是爲什麼您必須指定具有和不具有android:名稱空間的每個屬性。

+0

實際上我做到了。雖然..沒有效果..我失去了幾個小時發現清除皮棉標記去除了警告日食給了我。你可以指定需要用android:命名空間再次編寫的屬性..也許我做錯了什麼。 – BlastFire

+0

你使用正確的目錄嗎?你應該在'values-11'中至少有'values','values-v11'和android命名空間屬性。 – JRomero

+0

好吧,我有AB樣式生成器生成的兩個值目錄。 值和值-v14。在值屬性中使用沒有android:名稱空間和值-v14 WITH android: – BlastFire

相關問題