2012-12-26 12 views
6

मैं समझने में असमर्थ हूं कि एंड्रॉइड में ऐपबेस थीम के साथ क्या होता है। styles.xml में मैं कोड निम्नलिखित हैएंड्रॉइड ऐप्स में AppBaseTheme क्या करता है

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

<style name="mycolor"> 
    <item name="android:background">@layout/header_gradient</item> 
    <item name="android:padding">5dip</item> 
</style> 
<style name="myParentTheme" parent="android:Theme.Light"> 
    <item name="android:attr/windowTitleSize">40dip</item> 
    <item name="android:attr/windowTitleBackgroundStyle">@style/mycolor</item> 
</style> 


<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
</style> 

AndroidManifest.xml में जब मैं का उपयोग एंड्रॉयड: विषय = "@ शैली/myParentTheme" रंग और शीर्षक के आकार की तैयारी में हैं कि मैं क्या सेट करना चाहते हैं। लेकिन पाठ फ़ील्ड की शैली पुराने नियमित टेक्स्टबॉक्स में बदल जाती है। जब मैं एंड्रॉइड का उपयोग करता हूं: थीम = "@ स्टाइल/ऐपथीम" यूआई बहुत "एंड्रॉइड की तरह" दिखता है लेकिन शीर्षक के लिए मेरी विशिष्ट सेटिंग्स का कोई प्रभाव नहीं पड़ता है। अभिभावक को हटाने = "AppBaseTheme" AppTheme शैली को मेरी माता-पिता थीम की तरह व्यवहार करता है।

इसके अतिरिक्त, जब मैं स्टाइल टैग के नाम विशेषता में लिखते समय Ctrl + स्पेस करता हूं तो मैं सभी R.attr तत्व क्यों नहीं देखता?

कृपया मदद करें। धन्यवाद।

+0

कुछ भी जो अजीब है यह है कि मुझे AppBaseTheme परिभाषित नहीं किया जा रहा है के लिए कोई त्रुटि नहीं है। यह एक पूर्वनिर्धारित विषय होना है। मैं इसके बारे में कहां पढ़ूं? –

उत्तर

15

यदि आप एक्लिप्स नए-प्रोजेक्ट विज़ार्ड का उपयोग करके कोई गतिविधि बनाना चुनते हैं, तो एक्लिप्स AppTheme और AppBaseTheme संसाधनों को आपके लिए परिभाषित करेगा। AppBaseTheme में आमतौर पर res/values/, res/values-v11/, और res/values-v14/ में तीन परिभाषाएं होंगी। AppThemeAppBaseTheme से उत्तराधिकारी होगा।

यह उद्देश्य आपके लिए अपनी खुद की थीम (उदाहरण के लिए, myParentTheme) की बजाय AppTheme में अपनी अधिकांश ऐप-विशिष्ट शैली की जानकारी डालने का इरादा है। AppBaseTheme अधिकतर सुनिश्चित करेगा कि आप सही ओएस-आपूर्ति विषय से विरासत में हैं (उदाहरण के लिए, Theme.Light बनाम Theme.Holo.Light बनाम Theme.Holo.Light.DarkActionBar)। यदि आप चाहें तो उचित संस्करण AppBaseTheme पर आप संस्करण-विशिष्ट शैली की जानकारी भी जोड़ सकते हैं।

AndroidManifest.xml में जब मैं android:theme="@style/myParentTheme" का उपयोग रंग और शीर्षक के आकार मैं क्या सेट करना चाहते हैं की तैयारी में हैं। लेकिन पाठ फ़ील्ड की शैली पुराने नियमित टेक्स्टबॉक्स में बदल जाती है।

ऐसा इसलिए है क्योंकि आप Theme.Light से विरासत में हैं, जो मूल (गैर-होलोग्रफ़िक) विजेट सेट का उपयोग करता है।

जब मैं android:theme="@style/AppTheme" का उपयोग यूआई बहुत "एंड्रॉयड की तरह" दिखता है, लेकिन शीर्षक करने के लिए अपने विशिष्ट सेटिंग कोई असर नहीं है।

है ऐसा इसलिए है क्योंकि आप AppTheme में अपनी शैली परिभाषाएँ डालने के बजाय myParentTheme बनाने का फैसला किया।

+0

बहुत बहुत धन्यवाद! इसे पूरी तरह से समझाया –

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