12

我正在爲Android 5.0準備我的應用程序,我正在使用最新的兼容性庫,以下是我的樣式。設計Android 5.0中的彈出菜單

<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="colorPrimary">@color/theme_accent</item> 
     <item name="colorAccent">@color/theme_accent_secondary</item> 
    </style> 

    <style name="AppThemeDark" parent="Theme.AppCompat"> 
     <item name="colorPrimary">@color/theme_accent</item> 
     <item name="colorAccent">@color/theme_accent_secondary</item> 
    </style> 
</resources> 

(該動作條顏色被編程設置。)

現在,我想的溢/彈出菜單有深色背景喜歡它曾在全息實現,但我不能讓它工作,這裏是它的樣子:enter image description here

我試過設置popupMenuStyle,但它沒有奏效。

如何使彈出式菜單變暗?

+0

你怎麼創建溢出菜單,圖標? – user802421 2015-03-25 04:37:29

+0

溢出菜單的基本功能忽略圖標。 http://stackoverflow.com/questions/5216603/displaying-icon-for-menu-items-of-action-bar-in-honeycomb-android-3-0/5216625#5216625 – user802421 2015-03-26 00:09:00

+0

試試這個:android:showAsAction =「總是「 – animaonline 2015-03-26 09:04:25

回答

6

通過使用這種風格的解決我的問題:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/theme_accent</item> 
    <item name="colorAccent">@color/theme_accent_secondary</item> 
    <item name="actionBarStyle">@style/AbStyle</item> 
    <item name="actionModeBackground">@color/actionmode_bg</item> 
</style> 

<style name="AbStyle" parent="Widget.AppCompat.Toolbar"> 
    <item name="elevation">2dp</item> 
    <item name="displayOptions">homeAsUp|showTitle</item> 
    <!--showHome--> 
</style> 

<style name="AppThemeDark" parent="Theme.AppCompat"> 
    <item name="colorAccent">@color/theme_accent_secondary</item> 
    <item name="actionBarStyle">@style/AbStyle</item> 
</style> 

我不得不使用Widget.AppCompat.Toolbar爲父actionBarStyle

5

財產popupTheme添加到工具欄:

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/color_primary" 
    app:theme="@style/Theme.AppCompat.Light" 
    app:popupTheme="@style/Theme.AppCompat" /> 

或定義一個新的樣式工具欄:使用ActionBar

<style name="MyToolBarStyle" parent="Widget.AppCompat.Toolbar"> 
    <item name="android:background">@color/green</item> 
    <item name="popupTheme">@style/Theme.AppCompat.Light</item> 
    <item name="theme">@style/Theme.AppCompat</item> 
</style> 
+1

我使用的是一個ActionBar,所以它並沒有真正幫助我很多:( – animaonline 2014-11-04 16:35:59

+0

嗨,我們可以更改彈出菜單項的大小嗎? – 2015-09-07 02:38:37

19

停止。如果您想將ToolBar設置爲ActionBar,請在android-開發人員博客上按照this guide

它實際上提到在黑暗行動吧你的使用情況,並提供了該代碼:

<android.support.v7.widget.Toolbar 
    android:layout_height=」wrap_content」 
    android:layout_width=」match_parent」 
    android:minHeight=」@dimen/triple_height_toolbar」 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
+0

爲什麼我要停止使用操作欄?它不像它已被棄用。 – animaonline 2014-11-05 07:38:41

+5

@animaonline工具欄是ActionBar的超集(簡單包裝提取的佈局)您可以使用任何您已經完成的任何工作,等等。 ActionBar將最終取代。正如您可能已經注意到的那樣,當前的支持庫在支持較舊的操作欄時有很多錯誤。 – 2014-11-05 20:19:33

+0

我意識到這一點,我有一個非常複雜的應用程序與許多片段和自定義導航,ActionBar做得很好,我不需要從工具欄的任何新功能,所以我要堅持現在的AB,我感謝你的建議,但他們不會幫助我很多。 – animaonline 2014-11-06 08:36:03

9

不是一個完整的答案,但我發現迄今:

在你需要指定過去版本一個可繪製的(檢查https://github.com/StylingAndroid/StylingActionBar代碼和教程)

顯然,現在是一種顏色。要修改它,你需要指定以下主題:

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
     <item name="android:actionBarPopupTheme">@style/popupNew</item> 
    </style> 

    <style name="popupNew" parent="android:ThemeOverlay.Material.Light"> 
     <item name="android:colorBackground">@color/red</item> 
    </style> 

</resources> 

如果應用到應用的主題就是這樣,這可以正常工作。 如果我將android:actionBarPopupTheme添加到我現有的主題中,則不起作用。我想弄明白爲什麼。

+0

這個工程。但如何修改操作欄彈出窗口的陰影? – Jonguo 2014-12-12 03:20:38

+0

正確的答案是,您的主題將樣式調用到「actionBarPopupTheme」,然後在樣式中添加「ThemeOverlay」的父項。我這樣做,它的工作。謝謝您的回答! – Brandon 2015-07-30 14:37:49