7

के साथ अंधेरे एक्शन मोड को कैसे निर्दिष्ट करें मुझे पता है कि एक्शन बार के प्रासंगिक एक्शन बार (एक्शनमोड) टुकड़े को स्टाइल करने के बारे में कुछ प्रश्न हैं, लेकिन वे मेरे बाद के पते को हल करने के लिए काफी प्रतीत नहीं होते हैं।मेरी थीम

मैं टूलबार का उपयोग एक हल्की थीम और अंधेरे एक्शन बार के साथ कर रहा हूं। टूलबार ऐसा लगता है कि मैं इसे चाहता हूं, लेकिन एक्शन मोड नियमित अंधेरे विषय की तरह दिखता है। अंधेरे थीम्ड एक्शन मोड (केवल एक्शन बार नहीं) पाने के लिए मुझे अपनी शैली में बदलने की क्या ज़रूरत है? ऐसा लगता है कि मुझे Theme.AppCompat में टैप करके इसे जल्दी से करने में सक्षम होना चाहिए क्योंकि यह सीएबी दिखाता है कि मैं इसे कैसे चाहता हूं, लेकिन मैं नहीं चाहता कि शेष एप्लिकेशन अंधेरा हो।

मैं केवल एपीआई 14+ के बारे में चिंतित हूं और एक्शन बार के स्थान पर समर्थन टूलबार का उपयोग कर रहा हूं।

यहाँ मेरी आधार शैली

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:actionModeBackground">@color/colorActionMode</item> 
    <item name="android:windowActionModeOverlay">true</item> 
</style> 

टूलबार शैली

<style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item> 
    <item name="actionMenuTextColor">@color/abc_primary_text_material_dark</item> 
    <item name="android:textColorSecondary">@color/abc_primary_text_material_dark</item> 
    <item name="android:background">@color/colorPrimaryDark</item> 
</style> 

टूलबार लेआउट फ़ाइल (popupTheme यहां अपनी सेटिंग कोई असर दिखाई नहीं देता है) है।

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    app:theme="@style/AppTheme.Toolbar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" 
    android:popupTheme="@style/ThemeOverlay.AppCompat.Dark" 
    android:elevation="2dp" 
    android:focusable="false"/> 

यहाँ (जो मैं इसे कैसे चाहते हैं)

styled toolbar

यहाँ मेरी ActionMode (जो मैं उलटने की जरूरत है) है अपनी टूलबार है

my action mode

यहाँ जो मैं चाहता एक्शनमोड जैसा दिखने वाला है (जो मुझेके बजाय Theme.AppCompat से प्राप्त करने के लिए मेरी शैली को बदलकर मिला है। समस्या यह है कि शेष एप्लिकेशन अंधेरा हो जाता है, जिसे मैं नहीं चाहता।

dark action mode

उत्तर

2

इस ब्लॉग पोस्ट जो टूलबार शैली में अंधेरा होने के लिए बताते हैं चेक आउट:

http://android-developers.blogspot.ie/2014/10/appcompat-v21-material-design-for-pre.html

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

आप एक टूलबार "शैली" निर्दिष्ट करें। मुझे लगता है कि आप जो खो रहे हैं वह ऐप नामित "विषय" संपत्ति है जो टूलबार और उसके सभी बच्चों को शैली लागू करती है।

संपादित करें: यह अपने आधार विषय में अधिभावी विशेषता actionModeStyle के साथ अपने विशेष मामले के लिए काम करना चाहिए

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:actionModeBackground">@color/colorActionMode</item> 
    <item name="android:windowActionModeOverlay">true</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 
<style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item> 
    <item name="actionMenuTextColor">@color/abc_primary_text_material_dark</item> 
    <item name="android:textColorSecondary">@color/abc_primary_text_material_dark</item> 
    <item name="android:background">@color/colorPrimaryDark</item> 
</style> 
+0

मैंने पहले ही टूलबार को थीम दी है, और मैं प्रश्न में अपनी टूलबार घोषणा जोड़ दूंगा। PopupTheme को सेट करना कोई प्रभाव नहीं प्रतीत होता है। मैंने app.popupTheme के साथ ही एंड्रॉइड की कोशिश की है: popupTheme। – Spencer

+0

मेरे पास एक ही सेटअप है और मेरी ऐप थीम 'Theme.AppCompat.Light.NoActionBar' से प्राप्त होती है और मेरे टूलबार थीम को 'ThemeOverlay.AppCompat.Dark.ActionBar' से प्राप्त होता है जैसा कि मेरे उत्तर में निर्दिष्ट है। – darnmason

+0

दुर्भाग्य से, वे शैलियों अनिवार्य रूप से वही हैं जो मेरे पास पहले से ही हैं। 'Theme.AppCompat.Light.NoActionBar' केवल उन चीज़ों को जोड़ता है जो मेरे पास पहले से ही शैली में था और टूलबार के लिए 'Dark.ActionBar' थीम कुछ भी नहीं बदलेगी। जब मैंने कोशिश की कि आपके पास क्या है, तो मुझे मूल रूप से वही परिणाम मिल गया। – Spencer

4

प्रारंभ:

<item name="actionModeStyle">@style/LStyled.ActionMode</item> 

परिभाषित LStyled.ActionMode के रूप में:

<style name="LStyled.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> 
    <item name="titleTextStyle">@style/LStyled.ActionMode.Title</item> 
    <item name="subtitleTextStyle">@style/LStyled.ActionMode.Subtitle</item> 
</style> 

अंत में:

<style name="LStyled.ActionMode.Title" parent="@style/TextAppearance.AppCompat.Widget.ActionMode.Title"> 
    <item name="android:textColor">@color/color_action_mode_text</item> 
</style> 

<style name="LStyled.ActionMode.Subtitle" parent="@style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle"> 
    <item name="android:textColor">@color/color_action_mode_text</item> 
</style> 

यह & उपशीर्षक (यदि आवश्यक हो) शीर्षक के लिए थीम निर्दिष्ट टेक्स्ट रंगों को ओवरराइड करेगा।

ओवरफ़्लो बटन क्या बचा है। रंग-प्रतिस्थापन का समर्थन करने वाले किसी भी छवि संपादन सॉफ्टवेयर को फायर करें। AppCompat के res/drawable-XXXX फ़ोल्डर से ओवरफ़्लो मेनू पीएनजी का उपयोग करें। इसे सफेद पेंट करें। इसके बाद, अपने आधार विषय में actionOverflowButtonStyle ओवरराइड और PNG तुम सिर्फ संशोधित कर लिया है निर्दिष्ट करें:

<item name="actionOverflowButtonStyle">@style/LStyled.OverFlow</item> 

<style name="LStyled.OverFlow" parent="@style/Widget.AppCompat.ActionButton.Overflow"> 
    <item name="android:src">@drawable/modified_overflow_icon</item> 
</style> 

वहाँ एक स्पष्टीकरण/ट्यूटोरियल है कि मैं विषयों के अनुकूलन के बारे में प्रदान कर सकते हैं की ज्यादा नहीं है। इसका लटका पाने का एकमात्र तरीका ढांचे से [शैलियों] [विषयों] .xml फ़ाइलों के माध्यम से जाना है। स्रोत कोड को पढ़ने में भी मदद मिलती है - आपको पता चलेगा कि कौन से विशेषताओं का उपयोग किया जा रहा है और कहां/यदि उन्हें अनुकूलित किया जा सकता है। उल्लेख के

प्वाइंट:

मैं एक शैली में एक ही व्यवहार है कि गहरे रंग की थीम में बनाया गया है प्राप्त करने के लिए विस्तार करने के लिए सक्षम होना चाहते हैं।

हाँ, लेकिन यह वांछित नहीं हो सकता है। ओवरफ्लो मेनू आइकन को संशोधित करने से संबंधित उपरोक्त भाग को ओवरराइड colorControlNormal विशेषता के साथ प्रतिस्थापित किया जा सकता है। TintManager (Link) अतिप्रवाह मेनू खींचने योग्य (अन्य drawables के बीच) टिंट करने के लिए colorControlNormal से रंग मान का उपयोग करता है। स्रोत कोड में सरणी TINT_COLOR_CONTROL_NORMAL की सामग्री पर नज़र डालें। लेकिन एक ड्रॉबल को ठीक करने के लिए colorControlNormal ओवरराइडिंग पूरे दृश्य को & ऐप के खराब होने के कारण बदल सकता है।

+0

उत्तर के लिए धन्यवाद, लेकिन मैं निर्मित शैली का विस्तार करने के लिए एक तरीका तलाश रहा हूं। मुझे पता है कि मैं एक्शन मोड में ओवरफ्लो आइकन (और घर जैसा आइकन) को प्रतिस्थापित कर सकता हूं, लेकिन मैं ऐसा करने से बचने की उम्मीद कर रहा था और बस निर्मित शैली का उपयोग कर रहा था। – Spencer

+0

@ स्प्परर मैं केवल इस 'कामकाज' के बारे में जानता हूं।अगर मुझे कुछ सुरुचिपूर्ण लगता है तो मैं अपना जवाब अपडेट करूंगा (और एक टिप्पणी छोड़ दूंगा)। लेकिन, मैं जवाब पोस्ट करने से पहले _did_ शोध। ऐसा लगता है कि आप जो खोज रहे हैं वह सिस्टम द्वारा समर्थित नहीं है (अभी तक?)। – Vikram

+1

आपके द्वारा यहां दिया गया जवाब मूल रूप से मैंने यहां प्रश्न पूछने से पहले किया था (मुझे "होम अप अप" आइकन भी संशोधित करना था। मुझे उम्मीद थी कि मैं सिस्टम को आरटीएल समर्थन जोड़ने के साथ-साथ सिस्टम को भी प्राप्त कर सकता हूं और इतने पर, लेकिन मुझे पता नहीं चला कि कैसे या तो आपके विचारों के लिए धन्यवाद। – Spencer

1

मैं केवल विक्रम के उत्तर में जोड़ना चाहता हूं, ओवरफ़्लो बटन को रंगने और क्रिया मोड में अन्य डिफ़ॉल्ट नियंत्रणों को रंग देने के लिए विशिष्ट है।

एक्शन मोड में इन बटनों के रंग को परिभाषित करने वाला 'colorControlNormal' आइटम एक्शन बार थीम में नहीं किया जाना चाहिए, न कि क्रिया मोड शैली। केवल तभी यह क्रिया मोड के भीतर अतिप्रवाह, पूर्ण, बंद और बैक बटन के लिए उपयोग किया जाएगा।

0

बजाय

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

उपयोग करने के लिए प्रयास करें।

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