software - android system download




कैसे "? एंड्रॉइड: एटीआर/सक्रिय बैकग्राउंड इंडिकेटर" काम करता है? (3)

मैं चयन के लिए प्रासंगिक एक्शन बार प्रदर्शित करते समय किसी सूची में किसी चयनित आइटम को हाइलाइट करना चाहता था, और मुझे जो समाधान मिला वह android:background सेट करना था android:background मेरी पंक्ति लेआउट xml की android:background विशेषता "?android:attr/activatedBackgroundIndicator" android:background "?android:attr/activatedBackgroundIndicator"

यद्यपि यह काम कैसे स्थापित करता है?

  1. तंत्र शामिल क्या है?
  2. "?", "attr", "सक्रिय बैकग्राउंड इंडिकेटर" जैसे वाक्यविन्यास तत्व क्या हैं?
  3. "सक्रिय बैकग्राउंड इंडिकेटर" का अर्थ कहां परिभाषित किया गया है?

पहले ही एक सही उत्तर दिया है, लेकिन इसने "?" को संबोधित नहीं किया है वाक्य - विन्यास। एपीआई गाइड एक्सेसिंग संसाधनों से उद्धरण यहां दिया गया है

एक शैली विशेषता का संदर्भ देने के लिए, नाम वाक्यविन्यास सामान्य संसाधन प्रारूप के लगभग समान है, लेकिन एट-प्रतीक (@) के बजाय, एक प्रश्न-चिह्न (?) का उपयोग करें, और संसाधन प्रकार भाग वैकल्पिक है। उदाहरण के लिए:

[<PACKAGE_NAME>:] [<resource_type> /] <RESOURCE_NAME>


मैंने इसे एक बिंदु पर भी आश्चर्यचकित किया। एंड्रॉइड संसाधनों की एक बड़ी राशि ब्लैक-बॉक्स की तरह लगती है और उन्हें सीधे नहीं देख सकती है। मैं उन्हें कुछ जगह याद कर सकता हूं, लेकिन मैं उन्हें एसडीके स्रोत कोड में नहीं ढूंढ सकता। मैं यही जानता हूं।

  • android:background एक खींचने योग्य ले जाएगा।
  • वाक्यविन्यास शैली में है

    फ़ॉर्म में "@ [+] [पैकेज:] टाइप: नाम" या फॉर्म में थीम एट्रिब्यूट के रूप में किसी अन्य संसाधन का संदर्भ होना चाहिए "? [Package:] [type:] name"

इस मामले में ? पैकेज android में एक थीम को देखने के लिए इंगित करता है और यह टाइप attr जहां नाम activatedBackgroundIndicator है attr

आपको android.R.attr.activatedBackgroundIndicator . android.R.attr.activatedBackgroundIndicator साथ कोड- android.R.attr.activatedBackgroundIndicator में भी इसका उपयोग करने में सक्षम होना चाहिए।

एंड्रॉइड R.attr गुणों की एक सूची R.attr मिल R.attr

  • activatedBackgroundIndicator बैकग्राउंड इंडिकेटर एंड्रॉइड 3.0+ के रूप में परिभाषित एक परिभाषित है

    सक्रिय वस्तुओं के लिए पृष्ठभूमि के रूप में उपयोग किया जा सकता है।

यह मूल रूप से ओएस में परिभाषित एक मानक आइटम है। मुझे एंड्रॉइड स्रोत में नहीं मिल रहा है, लेकिन यहां प्रलेखन का एक लिंक है। activatedBackgroundIndicator


यह थीम से मूल्य जोड़ने का एक रूप है। मान तकनीकी रूप से संसाधन संकलन के दौरान ज्ञात नहीं है क्योंकि थीम मान उस बिंदु पर ज्ञात नहीं हो सकते हैं। इसके बजाय मूल्य (आमतौर पर) ContextThemeWrapper से ली गई वास्तविक थीम के आधार पर रनटाइम पर हल किया जाता है।

यह संसाधन मूल्यों का पुन: उपयोग करने का एक तरीका प्रदान करता है। मैं यहाँ प्रदर्शन के अनुसार बात नहीं कर रहा हूं, बल्कि संगठन और रखरखाव के अनुसार। गुण कार्य करता है क्योंकि यह वादे के साथ एक चर था कि यह रनटाइम पर वास्तविक मान रखेगा।

यह दृष्टिकोण अधिक अनुकूलन के लिए भी अनुमति देता है - उदाहरण के लिए खिड़की की पृष्ठभूमि को खींचने के मूल्य को हार्डकोड करने की बजाय इसे किसी थीम से वास्तविक खींचने योग्य बनाता है, जो कि कुंजी के रूप में चुनी गई विशेषता प्रदान करता है। यह आपको उस विशेषता के मान को ओवरराइड करने देता है। आपको बस इसकी आवश्यकता है:

  1. अपनी खुद की थीम बनाएं (जो कि "शैली" संसाधन के लिए सिर्फ एक फैंसी नाम है), आमतौर पर डिफ़ॉल्ट विषयों में से एक से प्राप्त होता है।
  2. प्रश्न में विशेषता के लिए अपना खुद का मूल्य प्रदान करें।

मंच स्वचालित रूप से आपके मूल्य का उपयोग करेगा बशर्ते आपने अपनी थीम को किसी गतिविधि या एप्लिकेशन के लिए निर्दिष्ट किया हो। आप इस सवाल में वर्णित की तरह ऐसा करते हैं। थीम-विशेषता संदर्भों का सामान्य वाक्यविन्यास यहां वर्णित है: शैली विशेषताओं का संदर्भ देना । आपको वहां पूरी तंत्र का एक उदाहरण और वर्णन भी मिलेगा।

संपादित करें

एक बात जो ध्यान दी जानी चाहिए वह वास्तविक विशेषता नाम और विभिन्न प्लेटफार्म संस्करणों में उनके अस्तित्व है। अगले प्लेटफ़ॉर्म संस्करणों में नए विशेषताओं के लिए यह काफी आम है - उदाहरण के लिए कुछ एक्शनबार स्टाइल के उद्देश्य के लिए संस्करण 3.0 में जोड़े गए थे।

आपको एपीआई के हिस्से के रूप में विशेषता नामों का इलाज करना चाहिए - दूसरे शब्दों में, वे उस अनुबंध का हिस्सा हैं जिसका उपयोग करने के लिए आपको अनुमति है। यह कक्षाओं और उनके हस्ताक्षरों के समान ही है - आप अंतिम डिवाइस स्थान प्राप्त करने के उद्देश्य से LocationManager प्रबंधक वर्ग का उपयोग करते हैं क्योंकि आप कुछ स्रोत (ट्यूटोरियल, संदर्भ, आधिकारिक मार्गदर्शिका इत्यादि) से जानते हैं इस वर्ग का उद्देश्य क्या है। इसी तरह, एंड्रॉइड प्लेटफ़ॉर्म दस्तावेज़ में विशेषता नाम और उनका उद्देश्य (कभी-कभी अच्छी तरह से, कभी-कभी दुखी) परिभाषित किया जाता है।





android