12

मैं एंड्रॉइड 5.0 के लिए अपना ऐप तैयार कर रहा हूं, मैं नवीनतम संगतता लाइब्रेरी का उपयोग कर रहा हूं, यहां मेरी शैली कैसी दिखती है।एंड्रॉइड 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> 

(ActionBar रंग प्रोग्राम के रूप में सेट किया गया है जा रहा है।)

अब, मैं जैसे कि यह होलो कार्यान्वयन में था अतिप्रवाह/पॉपअप मेनू गहरे रंग की पृष्ठभूमि करना चाहते हैं, लेकिन मैं इसे प्राप्त नहीं कर सकते काम करने के लिए, यह ऐसा लगता है: enter image description here

मैंने popupMenuStyle सेट करने का प्रयास किया है लेकिन यह काम नहीं किया है।

मैं पॉपअप मेनू को गहरा कैसे बना सकता हूं?

+0

कैसे आप के साथ अतिप्रवाह मेनू बनाया था माउस? – user802421

+0

अतिप्रवाह मेनू का मूलभूत आइकन आइकन को अनदेखा करता है। http://stackoverflow.com/questions/5216603/displaying-icon-for-menu-items-of-action-bar-in-honeycomb-android-3-0/5216625#5216625 – user802421

+0

इसे आज़माएं: एंड्रॉइड: showAsAction = " हमेशा " – animaonline

उत्तर

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> 

मैं माता पिता के रूप में actionBarStyle Widget.AppCompat.Toolbar का इस्तेमाल किया था

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

या अपनी उपकरण पट्टी के लिए एक नई शैली को परिभाषित:

<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

मैं एक्शनबार का उपयोग कर रहा हूं, इसलिए यह वास्तव में मुझे बहुत मदद नहीं करता है :( – animaonline

+0

हाय , क्या हम पॉप अप मेनू आइटम का आकार बदल सकते हैं? –

19

बंद करो ActionBar का उपयोग कर। यदि आप ToolBar को ActionBar की तरह सेट अप करना चाहते हैं, तो एंड्रॉइड-डेवलपर ब्लॉग पर 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

+5

@animaonline टूलबार एक्शनबार का एक सुपरसेट है (बस लपेटा गया निकाला गया लेआउट) आप जो कुछ भी पहले से किया है उसका उपयोग कर सकते हैं, और भी बहुत कुछ। अंततः एक्शनबार बदल दिया जाएगा। पुरानी एक्शनबार का समर्थन करने की बात आने पर वर्तमान समर्थन लाइब्रेरी में कुछ बग हैं, जैसा आपने देखा होगा। –

+0

मुझे इसके बारे में पता है, मेरे पास कई टुकड़े और कस्टम नेविगेशन के साथ एक बहुत ही जटिल ऐप है, एक्शनबार सिर्फ नौकरी करता है, मुझे टूलबार से किसी भी नई फीचर्स की आवश्यकता नहीं है, इसलिए मैं साथ रहना चाहता हूं अब के लिए एबी, मैं आपकी सिफारिशों की सराहना करता हूं लेकिन वे मेरी मदद नहीं करेंगे। – animaonline

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

+0

सही उत्तर यह है कि आपकी थीम शैली को "actionBarPopupTheme" पर कॉल करती है और उसके बाद शैली में आपको "ThemeOverlay" के लिए अभिभावक को जोड़ना होगा। मैंने यह किया और यह काम किया। आपके उत्तर के लिए धन्यवाद! – Brandon

संबंधित मुद्दे