मान लीजिए कि मैं स्टाइल करने योग्य विशेषताओं के साथ कुछ नए विचार कर रहा हूं। मैं घोषणा उन्हें thusly (इस how the documentation says to do it है:घोषित करने योग्य शैली का क्या मतलब है?
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TriangleView">
<attr name="direction">
<enum name="NE" value="0" />
<enum name="NW" value="1" />
<enum name="SW" value="2" />
<enum name="SE" value="3" />
</attr>
</declare-styleable>
<declare-styleable name="BannerView">
<attr name="direction">
<enum name="NE" value="0" />
<enum name="NW" value="1" />
<enum name="SW" value="2" />
<enum name="SE" value="3" />
</attr>
<attr name="thickness" format="dimension" />
</declare-styleable>
</resources>
हालांकि, इस वजह से सभी विशेषताओं में एक ही नाम स्थान में जाहिरा तौर पर कर रहे हैं काम नहीं करेगा, और मैं त्रुटि Error: Attribute "direction" has already been defined
मिल
तो जाहिरा तौर पर मैं आगे बढ़ना है। <declare-styleable>
इस तरह बाहर जाहिरा तौर पर दोहराया गुण:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="direction">
<enum name="NE" value="0" />
<enum name="NW" value="1" />
<enum name="SW" value="2" />
<enum name="SE" value="3" />
</attr>
<declare-styleable name="BannerView">
<attr name="thickness" format="dimension" />
</declare-styleable>
</resources>
लेकिन यह दो सवाल बन गया है:
- यदि यह काम करता है, तो
<declare-styleable>
का बिंदु क्या है? - यदि मैं अलग-अलग विचारों में अलग-अलग व्यवहार करना चाहता हूं तो क्या होगा? उदाहरण के लिए यदि
BannerView
की दिशा केवलup
याdown
हो सकती है।
बहुत बढ़िया, वास्तव में ऐप-कंपैट लिब में परिभाषित एफ़आर के लिए भी मेरी मदद की! तो यह मूल रूप से है, यदि कोई एटीआर पहले ही परिभाषित किया गया है, तो इसे प्रारूप को ओवरराइड करने की कोशिश किए बिना घोषणा-शैली में उपयोग किया जाना चाहिए। कूल शांत ठंडा। – Redwarp