2015-02-06 18 views
13

का उपयोग करते समय एक्शन मोड स्टाइल करने में असमर्थ मुझे यकीन नहीं है कि यह एक बग है या किसी भी तरह से मैं नई टूलबार कक्षा का सही उपयोग नहीं कर रहा हूं।टूलबार

मैं उपलब्ध थीम में से किसी एक का उपयोग करके सीधे एक्शनबार को थीम करने में सक्षम हूं। यह मुझे एक्शनमोड थीम करने की अनुमति देता है। सबकुछ अपेक्षित के रूप में सही काम करता है। यहां मैं यह कैसे कर रहा हूं।

<style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="actionModeBackground">@drawable/action_mode_background</item> 
</style> 

अब मैं थोड़ा अधिक लचीलापन ढूंढ रहा हूं इसलिए मैं समर्थन लाइब्रेरी से नए टूलबार का उपयोग करने की कोशिश कर रहा हूं। लागू टूलबार को सही और ठीक काम कर रहा है, हालांकि, अब कार्रवाई मोड अपेक्षित के रूप में काम नहीं कर रहा है। कस्टम पृष्ठभूमि काम नहीं कर रही है और एक्शन मोड बार टूलबार को नीचे दबा रहा है।

पुशिंग डाउन इश्यू को ठीक करने के लिए मैंने ध्वज windowActionModeOverlay का उपयोग किया। मेरे लिए तथ्य यह है कि कार्रवाई मोड टूलबार का हिस्सा नहीं बन जाता है बेकार है ...:/

<style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowActionModeOverlay">true</item> 
     <item name="actionModeBackground">@drawable/action_mode_background</item> 
</style> 

मेरे गतिविधि में मैं अपनी टूलबार डिफ़ॉल्ट ActionBar बनाने के लिए निम्न उपाय अपनाते हैं।

Toolbar toolbar = (Toolbar) findViewById(R.id.toolBar); 
setSupportActionBar(toolbar); 

अभी मैंने कई चीजों की कोशिश की है। मैंने यह भी पता लगाने के लिए स्रोत में डाइविंग की कोशिश की कि क्या हो रहा है।

कोई विचार यह क्यों हो रहा है? मैं एक्शनमोड कैसे स्टाइल कर सकता हूं? या अधिक विशेष रूप से मैं एक्शनमोड की पृष्ठभूमि कैसे बदल सकता हूं?


अद्यतन 1
मैंने देखा है कि जब मेरी गतिविधि विषय को <item name="windowActionBar">false</item> जोड़ने कार्रवाई मोड यह सच के रूप में होने की तुलना में अपने विषय के खो देता है। स्पष्ट रूप से इसे सत्य के रूप में सेट करना इसमें विंडो एक्शन बार शामिल होगा।


अद्यतन 2
मैं कार्रवाई मोड ठीक से थीम पर आधारित एक जोड़े mods का उपयोग कर प्राप्त करने में सक्षम था।

  1. क्रिया मोड पृष्ठभूमि। एंड्रॉइड के रूप में आप सीधे एक्शनमोड थीम पर बैकग्राउंड सेट करते हैं: पृष्ठभूमि! साथ ही, पाठ को आपको थीम पर निर्दिष्ट करने की आवश्यकता है।

    <item name="actionModeStyle">@style/Widget.ActionMode</item>
    <style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="android:background">@drawable/action_mode_background</item> <item name="titleTextStyle">@style/TitleTextStyle</item> </style>

  2. वापस तीर नहीं स्टाइल रही। मैंने उपयोग किए जाने वाले ड्रॉबल को ओवरराइट किया और बस अपना खुद का सफेद जोड़ा।
    <item name="actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item>

+0

बस यह सुनिश्चित करने के लिए, मैं 'actionModeBackground' विशेषता को 'एंड्रॉइड:' उपसर्ग जोड़ने का प्रयास करूंगा। – natario

+0

अरे, मैंने अपने प्रश्न को "फिक्स" के साथ अपडेट किया। एक्शन मोड पृष्ठभूमि सेट करना थोड़ा अलग हो जाता है। – Jona

+0

और अब सवाल क्या है? – natario

उत्तर

16

ठीक है, मैं अंत में ठीक से कुछ शैलियों, विषयों, attrs, और समर्थन पुस्तकालय से कोड के माध्यम से खुदाई के बाद कार्रवाई मोड शैली में सक्षम था।

इससे पहले कि मैं अपने प्रश्न का समाधान प्रदान करता हूं, मुझे यह उल्लेख करना होगा कि समर्थन पुस्तकालय के साथ एक बग प्रतीत होता है। जब आप विंडो एक्शन बार छुपाते हैं तो यह एक्शन मोड के लिए सेट थीम को ढीला लगता है। मैंने यह देखने के लिए bug की सूचना दी है कि वे इसे ठीक करते हैं या अधिक जानकारी प्रदान करते हैं।

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

themes.xml

<style name="Theme.Main.Home"> 
    <item name="windowActionModeOverlay">true</item> 
    <item name="actionModeStyle">@style/Widget.ActionMode</item> 
    <item name="actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item> 
</style> 

styles.xml

<style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> 
    <item name="android:background">@drawable/action_mode_background</item> 
    <item name="titleTextStyle">@style/TitleTextStyle</item> 
</style> 
  • पृष्ठभूमि
    यह मुश्किल था, क्योंकि actionModeBackground की पृष्ठभूमि की स्थापना के लिए काम नहीं करता है एक्शन मोड आपको ActionMode शैली पर मानक android:background के माध्यम से पृष्ठभूमि को बदलना होगा।
  • शीर्षक टेक्स्ट
    बस शीर्षक के लिए सामान्य शैली प्रदान करना टेक्स्ट टेक्स्ट ने टेक्स्ट रंग बदलने की अनुमति दी।
  • बंद आइकन
    डाउनलोड की गई सामग्री माउस और actionModeCloseDrawable attr का उपयोग कर करीब आइकन मेरी आत्म गयी।
संबंधित मुद्दे