2011-01-31 10 views
15

मेरे पास एक टेक्स्ट व्यू है और मैं एक स्टाइल लागू करना चाहता हूं जिसका उपयोग मैं सभी टेक्स्ट व्यू तत्वों के साथ करता हूं और एक और शैली जिसे मैं केवल एक विशिष्ट गतिविधि के भीतर उपयोग करता हूं। क्या ऐसा करने की कोई संभावना है?एंड्रॉइड में एक तत्व के लिए दो अलग-अलग शैलियों को कैसे लागू करें?

उत्तर

13

एंड्रॉइड के तहत एक शैली में मूल शैली हो सकती है।

तो MyActivityTextViewGeneralTextView को मूल शैली के रूप में परिभाषित करें, और स्टाइल गुणों को बदलें/जोड़ें।

फिर आप कुछ विचारों के लिए MyActivityTextView और GeneralTextView दूसरों के लिए उपयोग कर सकते हैं।

यह Defining Styles में वर्णित है।

+0

ओह मैं देखता हूं। यह बहुत अच्छा है, बहुत बहुत धन्यवाद। हालांकि एक और सवाल: क्या बाल शैली भी मूल गुणों को ओवरराइट कर सकती है? – Bruiser

+1

हां यह मूल गुणों को ओवरराइड कर सकता है। –

4

आप अपने style.xml में किसी अन्य के साथ एक शैली का विस्तार कर सकते हैं:

<style name="current_weekday_white" parent="current_day_white"> 
    <item name="android:textColor">#FFABAB</item> 
</style> 
+0

अरे वहाँ मैंने पाठ दृश्य के साथ यह कोशिश की है, लेकिन केवल पहली शैली काम करता है, विस्तारित नहीं। किसी भी सुराग? –

19

उस सवाल को बेशकीमती में जोड़ सकते हैं सूचना के बस एक छोटा सा टुकड़ा - बेशर्म से नकल: http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles

यदि आप शैलियों से वंचित होना चाहते हैं जिन्हें आपने स्वयं परिभाषित किया है, तो आपको मूल विशेषता का उपयोग करने की आवश्यकता नहीं है। इसके बजाय, बस उस शैली के नाम को उपसर्ग करें जिसे आप अपनी नई शैली के नाम पर प्राप्त करना चाहते हैं, जो कि अवधि से अलग हो। उदाहरण के लिए, एक नई शैली है कि CodeFont शैली ऊपर परिभाषित विरासत में बनाते हैं, लेकिन लाल रंग बनाने के लिए, अगर आप इस तरह नई शैली लेखक कर सकते हैं:

<style name="CodeFont.Red"> 
     <item name="android:textColor">#FF0000</item> 
    </style> 

सूचना, टैग में कोई माँ बाप विशेषता है कि वहाँ लेकिन क्योंकि नाम विशेषता कोडफॉन्ट स्टाइल नाम से शुरू होती है (जो कि एक शैली है जिसे आपने बनाया है), इस शैली को उस शैली से सभी शैली गुण प्राप्त होते हैं। यह शैली एंड्रॉइड को ओवरराइड करती है: पाठ को लाल रंग बनाने के लिए टेक्स्ट रंग गुण। आप इस नई शैली को @ शैली/CodeFont.Red के रूप में संदर्भित कर सकते हैं।

आप अवधि के साथ नामों को चेन करके जितनी बार चाहें विरासत जारी रख सकते हैं। उदाहरण के लिए, आप को बड़ा करने के लिए CodeFont.Red का विस्तार कर सकते हैं:

<style name="CodeFont.Red.Big"> 
    <item name="android:textSize">30sp</item> 
</style> 
+4

मुझे यह दिलचस्प लगता है कि, भले ही मैंने पहले उस पृष्ठ का दौरा किया और पढ़ा/स्किम किया हो, मुझे यह दिलचस्प और _very_ उपयोगी टिड्बी नहीं पता था। धन्यवाद @ ब्रूज़र। – DavidDraughn

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