2010-07-15 16 views
33

सिर्फ के बजाय कई अन्य शैलियों से एक शैली इनहेरिट बनाने के लिए कोई तरीका है, के लिए सीमित किया जा रहा:शैलियों एकाधिक वंशानुक्रम

<style name="WidgetTextBase"> 
    <item name="android:typeface">serif</item> 
    <item name="android:textSize">12dip</item> 
    <item name="android:gravity">center</item> 
</style> 

<style name="BOSText" parent="WidgetTextBase"> 
    <item name="android:textColor">#051C43</item> 
</style> 

मैं BOSText चाहते हैं भी से प्राप्त करना:

<style name="WidgetTextHeader"> 
    <item name="android:textStyle">bold</item> 
<style> 
+0

क्या यह शायद उपयोगी है? http://stackoverflow.com/questions/4851175/how-to-apply-two- अलग- स्टाइल-to-one-element-in-android/4893402#4893402 – Bruiser

उत्तर

24

नहीं, शैली (कम से कम नहीं के रूप में एंड्रॉयड 3.2 की) एकाधिक वंशानुक्रम समर्थन नहीं करते।

+3

क्षमा करें, लेकिन आप गलत हैं। लिंक देखें http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles –

+20

आपने प्रश्न को गलत समझा (नीचे दिए गए उत्तर पर मेरी टिप्पणी देखें)। आप सही हैं कि आप ए> बी> सी जैसे स्टाइल विरासत श्रृंखला बना सकते हैं। हालांकि सवाल यह था कि आप (ए, बी)> सी। आई।, एक शैली दो स्वतंत्र विरासत श्रृंखलाओं से प्राप्त होती है। – Jonas

-1

शैली टैग पर एक अभिभावक विशेषता है जो आपको अन्य शैलियों से प्राप्त करने देनी चाहिए ...

यानी

<style name="CodeFont" parent="@style/WidgetTextBase"> 
    <item name="android:textStyle">bold</item> 
</style> 

http://developer.android.com/guide/topics/ui/themes.html

+8

समस्या यह है कि, मैं एकाधिक अभिभावक विशेषताओं को रखना चाहता हूं । – NPike

0

आप केवल एक शैली का उत्तराधिकारी बना सकते हैं। हालांकि, अगर आप भी एक और शैली से विरासत में मिली शैली इनहेरिट, और इतने पर कर सकते हैं:

<style name="WidgetTextBase"> 
    <item name="android:typeface">serif</item> 
    <item name="android:textSize">12dip</item> 
    <item name="android:gravity">center</item> 
</style> 

<style name="WidgetTextHeader" parent="WidgetTextBase"> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="BOSText" parent="WidgetTextHeader"> 
    <item name="android:textColor">#051C43</item> 
</style> 

आप एक से अधिक शैली के वारिस नहीं है, लेकिन आप यह कर सकते हैं एक विरासत श्रृंखला की स्थापना की।

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