2013-08-06 11 views
5

私のプロジェクトではv7サポートライブラリを使用しています。私のマニフェスト設定は:Android:アクションバーのスタイルオーバーフローメニュー

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

私はアクションバーのスタイルを生成するためにAndroidアクションバースタイルジェネレータを使用しました。問題は、すべて最新のAPIで動作しますが、私のオーバーフローメニューは、low apisでは変更されません(エミュレータ2.2と実際のデバイス2.3.3 htcの欲求でテストされています)。

1
(これは赤の背景を持っている必要があります)

(SRYそれがダムに聞こえる場合)スピナーダイアログか何かのようないくつかの他のコンポーネントのメニューオーバーフローローディングアイテムですか?なぜ、1つのAPIのスタイル(ex 15)が他のもの(ex 8)には適用されないのですか?また、すべてのAPIバージョンで同じオーバーフローメニューを持つためにできることがあります。

これは、アクションバースタイルジェネレータのオリジナルの生成スタイルで、多くは微調整しましたが、成功しませんでした。簡単にするために

<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:のないものは、あなたのアプリケーション(および使用しているライブラリ)に関連するだろうがOSに組み込まれているものに関係します。 ActionBarのほとんどのサポートライブラリは、ネイティブActionBar実装を使用しようとします。そのため、スタイルにandroid:名前空間属性を使用します。ネイティブActionBarが利用できないときは、ライブラリ実装と非android:の名前空間属性を使用します。したがって、android:名前空間の有無にかかわらず、すべての属性を指定する必要があります。

+0

実際に私がしました。しかし、何の効果もありません。私はリントマーカーをクリアすると、警告日食が私に与えられたものを取り除くことが分かりました。あなたはandroid:namespaceを使ってもう一度writedする必要がある属性を指定できますか?おそらく私は何か間違っています。 – BlastFire

+0

正しいディレクトリを使用していますか? 'values-11'には、少なくとも' values'、 'values-v11'、android namespaced属性を持たなければなりません。 – JRomero

+0

まあ、私は2つの値のディレクトリは、ABスタイルジェネレータによって生成されています。 値と値-v14値の属性はアンドロイドなしで使用されます:名前空間と値-v14 WITHアンドロイド: – BlastFire

関連する問題