2016-12-20 6 views
7

मैंने देखा है कि कुछ स्टाइल विशेषताएँandroid उपसर्ग की आवश्यकता है और कुछ को इसकी आवश्यकता नहीं है। क्या कारण है। जैसेक्यों और कब हमें एंड्रॉइड जोड़ने की आवश्यकता है: शैली के लिए उपसर्ग?

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

क्यों हम उपयोग नहीं किया है android:windowActionBar और android:windowNoTitle

उत्तर

2

SDK संस्करण एंड्रॉयड शैलियों के आधार पर अलग अलग नामस्थान में वर्गीकृत किया है। एक थीम को ओवरराइड करने के लिए आपको इसके नामस्थान का पालन करना होगा।

कारण जब एक AppCompat विषय का विस्तार आप android: उपसर्ग की जरूरत नहीं है है कि, लेकिन अगर आप कुछ और चाहता था, मान लें कि Theme.Holo करते हैं - आप उनके लिए 2 अलग अलग शैलियों होगा - पूर्व लॉलीपॉप उपकरणों के लिए एक, और -21 के लिए, बाद में प्रत्येक शैली विशेषता से पहले android: उपसर्ग है।

+0

लेकिन मुझे यह कब याद रखना चाहिए कि इसे कब जोड़ना है और कब अनदेखा करना है। AppCompat के लिए हमेशा इसकी आवश्यकता नहीं है। लेकिन अगर हम इसे होलो के लिए थीम के रूप में उपयोग कर रहे हैं तो हमें एंड्रॉइड उपसर्ग के बिना lolipop के लिए style.xml एक के लिए दो फ़ोल्डर बनाना होगा और एक उपसर्ग के साथ। क्या मैं सही हू।?? – Nepster

+0

हां, 2 अलग-अलग एक्सएमएल का इस्तेमाल 'होलो' के लिए किया जाएगा - शैलियों में से एक और शैलियों में से एक 21। मुझे यकीन नहीं है कि आपको यह कहने का कोई तरीका है कि आपको यह कब करना है, लेकिन ज्यादातर मामलों में आईडीई एक त्रुटि दिखाएगा कि आपको उच्च एपीआई स्तर की आवश्यकता है और एसओ पर त्वरित खोज से आपको समस्या हल करने में मदद मिलेगी –

0

यह इस बात पर निर्भर करता है कि आप किस थीम का उपयोग कर रहे हैं और यह कौन सा संदर्भ है। ये गुण विभिन्न स्रोतों द्वारा परिभाषित किए जाते हैं।

यदि विशेषता का नाम android: के साथ पूर्वनिर्धारित है, तो यह एक फ्रेमवर्क विशेषता है और इसे केवल एंड्रॉइड संस्करणों के लिए परिभाषित किया जा सकता है।

यदि विशेषता बिल्कुल उपसर्ग नहीं है, तो विशेषताओं को आपके स्वयं के एप्लिकेशन द्वारा परिभाषित किया जाता है। इसमें पुस्तकालयों के साथ आपके द्वारा खींची गई सभी विशेषता परिभाषाएं शामिल हैं।

अपने उदाहरण में आप AppCompat के लिए एक विषय परिभाषित कर रहे हैं जो समर्थन पुस्तकालय का हिस्सा है और इस प्रकार आपके आवेदन का है। ढांचे विजेट इन रंगों को सीधे पहचान नहीं पाएंगे।

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