Android लेआउट फ़ाइलों में "टूल्स: संदर्भ" क्या है?




xml android-layout (5)

एडीटी के हाल के नए संस्करण से शुरूआत में, मैंने लेआउट एक्सएमएल फाइलों पर इस नई विशेषता को देखा है, उदाहरण के लिए:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

"उपकरण: संदर्भ" के लिए क्या उपयोग किया जाता है?

यह वहां लिखी गई गतिविधि के सटीक पथ को कैसे जानता है? क्या यह मैनिफेस्ट के अंदर ऐप के पैकेज को देखता है?

क्या यह कक्षाओं तक सीमित है जो संदर्भ या केवल गतिविधियों का विस्तार करते हैं? क्या यह सूची दृश्य वस्तुओं आदि के लिए प्रयोग योग्य है?


1.Description

tools: context = "activity name" यह एपीके में पैक नहीं किया जाएगा। केवल आपके वर्तमान लेआउट फ़ाइल में ADT लेआउट संपादक संबंधित प्रतिपादन संदर्भ सेट करें, संदर्भ प्रस्तुत करने में अपना वर्तमान लेआउट दिखाएं गतिविधि का नाम गतिविधि से मेल खाता है, अगर manifest फ़ाइल में गतिविधि ने एक थीम सेट की है, तो ADT लेआउट एडिटर थीम के अनुसार अपना वर्तमान लेआउट प्रस्तुत करेगा। मान लें कि यदि आप MainActivity सेट करते हैं तो थीम सेट करें। लाइट (दूसरा), फिर आप विज़ुअल लेआउट मैनेजर ओ पृष्ठभूमि में क्या नियंत्रण होना चाहिए पृष्ठभूमि पृष्ठभूमि में देखते हैं। लाइट जैसा दिखता है। केवल आपको यह दिखाने के लिए कि आप क्या देखते हैं, आपको परिणाम मिलते हैं।

कुछ लोग कुछ समझेंगे, कुछ लोग देखते हैं कि यह भी नहीं पता, मैं स्पष्टीकरण के कुछ शब्द जोड़ूंगा:

2.Sample

एक साधारण tools:text लें tools:text , उदाहरण के लिए, कुछ और छवि, tools:context को और समझने के लिए सुविधाजनक tools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

android: text TextView 1 ने android: text अपनाया android: text , और tools:text उपयोग करें tools:text लेआउट एडिटर के दाहिने तरफ TextView 2 में tools:text sample name1 , sample name2 2 दो फ़ॉन्ट प्रदर्शित करेगा, अगर आप संकलन करने के लिए कोड चलाते हैं, जेनरेट apk , टर्मिनल केवल sample name1 प्रदर्शित करता है, sample name2 शब्द नहीं दिखाता है। आप दौड़ने की कोशिश कर सकते हैं, प्रभाव कैसे देखें।

3. विशिष्ट विवरण

1. tools: context = "activity name" यह एपीके में पैक नहीं किया जाएगा (समझ: इसके समकक्ष टिप्पणी की गई है, संकलित कोई प्रभाव नहीं है।)

2. केवल ADT लेआउट संपादक (यानी, सिम्युलेटर के दाहिने तरफ के उपरोक्त आइकन के लिए) वर्तमान लेआउट फ़ाइल में संबंधित प्रतिपादन संदर्भ सेट किया गया है, संदर्भ को प्रस्तुत करने में वर्तमान एक्सएमएल का लेआउट गतिविधि का नाम गतिविधि से मेल खाता है, यदि मैनिफेस्ट फ़ाइल में गतिविधि एक थीम सेट करती है, तो ADT लेआउट संपादक थीम के अनुसार अपना वर्तमान लेआउट प्रस्तुत करेगा। मान लें कि यदि आप MainActivity सेट करते हैं तो थीम सेट करें। लाइट भी हो सकता है (अन्य)। (समझें: आपने tools: context = "activity name" जोड़े tools: context = "activity name" , एक्सएमएल लेआउट निर्दिष्ट गतिविधि को प्रस्तुत कर रहा है, मैनिफेस्ट फ़ाइल में एक थीम स्थापित करता है, सही सिम्युलेटर थीम शैली के ऊपर चित्रित किया गया है जो संबंधित परिवर्तनों का पालन करेगा थीम के लिए।)

4.summary

संक्षेप में, इन गुणों का मुख्य उद्देश्य मुख्य उपकरण, सिम्युलेटर डीबगिंग समय प्रदर्शन स्थिति के ऊपर लक्षित है, और संकलन काम नहीं करता है,


"टूल्स: रेफरेंस" डिज़ाइन एट्रिब्यूट्स में से एक है जो विकास ढांचे में एक्सएमएल में लेआउट सृजन की सुविधा प्रदान कर सकता है। इस विशेषता का उपयोग विकास ढांचे को दिखाने के लिए किया जाता है जो लेआउट को लागू करने के लिए गतिविधि वर्ग चुना जाता है। "टूल्स: संदर्भ" का उपयोग करके, एंड्रॉइड स्टूडियो स्वचालित रूप से पूर्वावलोकन के लिए आवश्यक विषय चुनता है।

यदि आप एंड्रॉइड ऐप डेवलपमेंट के लिए कुछ अन्य विशेषताओं और उपयोगी टूल के बारे में और जानना चाहते हैं, तो इस समीक्षा पर नज़र डालें: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


यह विशेषता मूल रूप से लेआउट के ऊपर "संबद्ध गतिविधि" चयन के लिए दृढ़ता है। रनटाइम पर, एक लेआउट हमेशा एक गतिविधि से जुड़ा होता है। यह निश्चित रूप से एक से अधिक से जुड़ा हो सकता है, लेकिन कम से कम एक। टूल में, हमें इस मैपिंग के बारे में जानने की आवश्यकता है (जो कि रनटाइम पर दूसरी दिशा में होती है; एक गतिविधि कुछ सुविधाओं को चलाने के लिए सेटकंटेंट व्यू (लेआउट) को लेआउट प्रदर्शित करने के लिए कॉल कर सकती है)।

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

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

(यहां पूर्ण परिवर्तन है जिसमें this पर अधिक जानकारी है)

और हाँ, ऊपर सूचीबद्ध here निकोले दिखाता है कि नया कॉन्फ़िगरेशन चयनकर्ता कैसे दिखता है और काम करता है

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


यह शायद आपके यूआई संपादक को आपके लेआउट को प्रस्तुत करने के लिए उपयोग की जाने वाली गतिविधि है (यह गतिविधि के आधार पर सही थीम पायेगा)। यह here दस्तावेज here (लेख के मध्य के आसपास; उस पृष्ठ की सदस्यता अद्यतित रखने के लिए)।


tools:context=".MainActivity" इसलाइन का उपयोग एक्सएमएल फाइल में किया जाता है जो इंगित करता है कि इस जावा फाइल को एक्सेस करने के लिए कौन सी जावा स्रोत फ़ाइल का उपयोग किया जाता है। इसका मतलब है कि इस xml पूर्वावलोकन को perticular जावा फ़ाइलों के लिए दिखाएं।





android-tools-namespace