टैग शामिल हैं
<include>
टैग आप एकाधिक फ़ाइलों में अपने लेआउट को विभाजित करने की सुविधा देता है: यह से निपटने में मदद करता है जटिल या अधिक लंबा यूजर इंटरफेस।
मान लीजिए कि आपने अपने जटिल लेआउट को विभाजित करते हुए दो का उपयोग करते हुए फाइलें शामिल की हैं:
top_level_activity.xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<include layout="@layout/include1.xml" />
<!-- Second include file -->
<include layout="@layout/include2.xml" />
</LinearLayout>
तो फिर तुम लिखने की ज़रूरत include1.xml
और include2.xml
।
ध्यान रखें कि शामिल फ़ाइलों से xml केवल समय पर प्रतिपादन ( सी के लिए मैक्रो की तरह बहुत ) में अपने लेआउट में फेंक दिया है ।top_level_activity
#INCLUDE
शामिल फ़ाइलें सादे जेन लेआउट xml हैं।
शामिल 1 .xml :
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:text="First include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
... और शामिल 2। xml :
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button1"
android:text="Button" />
देख? कुछ भी आकर्षक नहीं। ध्यान दें कि आपको अभी भी Android नाम स्थान के साथ घोषित करना है xmlns:android="http://schemas.android.com/apk/res/android
।
तो top_level_activity.xml का प्रदान किया गया संस्करण है:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<TextView
android:id="@+id/textView1"
android:text="First include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
आपके जावा कोड में, यह सब पारदर्शी है: findViewById(R.id.textView1)
आपकी गतिविधि कक्षा में सही विजेट (भले ही उस विजेट को एक्टिविटी लेआउट से अलग xml फ़ाइल में घोषित किया गया हो) लौटाता है।
और शीर्ष पर चेरी: दृश्य संपादक तैरने वाली चीज़ को संभालता है। शीर्ष स्तर के लेआउट को शामिल किए गए xml के साथ प्रस्तुत किया गया है।
साज़िश का गहरा जाना
शामिल फ़ाइल के रूप में एक क्लासिक लेआउट xml फ़ाइल है, इसका मतलब है कि इसमें एक शीर्ष तत्व होना चाहिए। इसलिए यदि आपकी फ़ाइल को एक से अधिक विजेट शामिल करने की आवश्यकता है, तो आपको एक लेआउट का उपयोग करना होगा।
मान लीजिए कि include1.xml
अब दो हैं TextView
: एक लेआउट घोषित किया जाना है। चलो एक का चयन करें LinearLayout
।
शामिल 1 .xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
Top_level_activity.xml इस रूप में प्रदान किया जाएगा:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<LinearLayout
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
लेकिन रुको दो स्तर LinearLayout
बेमानी हैं !
दरअसल, दो नेस्टेड LinearLayout
कोई उद्देश्य पूरा के रूप में दो TextView
के तहत शामिल किया जा सकता layout1
के लिए बिल्कुल वैसा ही प्रतिपादन ।
तो हम क्या कर सकते हैं?
मर्ज टैग दर्ज करें
<merge>
टैग बस एक डमी टैग कि अतिरेक मुद्दों के इस प्रकार से निपटने के लिए एक उच्च स्तर घटक प्रदान करता है।
अब शामिल 1 .xml बन जाता है:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</merge>
और अब top_level_activity.xml इस प्रकार प्रदान किया जाता है:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
आपने एक पदानुक्रम स्तर बचाया, एक बेकार दृश्य से बचें: रोमेन गाइ पहले से बेहतर सोता है।
क्या आप अब खुश नहीं हैं?
<TextView />
और सिर्फ कुछ नहीं है।