लेआउट से जुड़ा संसाधन

लेआउट रिसॉर्स, यूज़र इंटरफ़ेस (यूआई) के आर्किटेक्चर को Activity या यूज़र इंटरफ़ेस (यूआई) का कॉम्पोनेंट है.

फ़ाइल की जगह:
res/layout/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है.
कंपाइल किए गए संसाधन डेटा टाइप:
View (या सब-क्लास) संसाधन के लिए रिसॉर्स पॉइंटर
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Java में: R.layout.filename
एक्सएमएल में: @[package:]layout/filename
सिंटैक्स:
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@[+][package:]id/resource_name"
    android:layout_height=["dimension" | "match_parent" | "wrap_content"]
    android:layout_width=["dimension" | "match_parent" | "wrap_content"]
    [ViewGroup-specific attributes] >
    <View
        android:id="@[+][package:]id/resource_name"
        android:layout_height=["dimension" | "match_parent" | "wrap_content"]
        android:layout_width=["dimension" | "match_parent" | "wrap_content"]
        [View-specific attributes] >
        <requestFocus/>
    </View>
    <ViewGroup >
        <View />
    </ViewGroup>
    <include layout="@layout/layout_resource"/>
</ViewGroup>

ध्यान दें: रूट एलिमेंट ViewGroup, View या <merge> एलिमेंट, लेकिन सिर्फ़ ऐसे एलिमेंट हो सकते हैं एक रूट एलिमेंट है और इसमें android के साथ xmlns:android एट्रिब्यूट शामिल होना चाहिए जैसा कि पिछले सिंटैक्स उदाहरण में दिखाया गया है.

एलिमेंट:
<ViewGroup>
अन्य View एलिमेंट के लिए कंटेनर. कई अलग-अलग तरह के ViewGroup ऑब्जेक्ट होते हैं. हर ऑब्जेक्ट आपको चाइल्ड एलिमेंट के लेआउट को अलग-अलग तरीके से तय करें. अलग-अलग तरह के ViewGroup ऑब्जेक्ट में LinearLayout, RelativeLayout और FrameLayout.

यह न मानें कि ViewGroup का कोई व्युत्पन्न है इसमें नेस्ट किए गए व्यू स्वीकार किए जाते हैं. कुछ व्यू ग्रुप AdapterView क्लास को लागू करने का तरीका है. इससे तय होता है कि बच्चे को सिर्फ़ Adapter से जोड़ा गया है.

विशेषताएं:

android:id
संसाधन आईडी. एलिमेंट के लिए यूनीक संसाधन नाम, जिसे आप आपके आवेदन से ViewGroup का रेफ़रंस पाने के लिए इसका इस्तेमाल करें. ज़्यादा के लिए जानकारी के लिए, android:id की वैल्यू सेक्शन देखें.
android:layout_height
डाइमेंशन या कीवर्ड. ज़रूरी है. ग्रुप की ऊंचाई, जैसे कि डाइमेंशन वैल्यू (या डाइमेंशन संसाधन) या कीवर्ड ("match_parent" या "wrap_content"). ज़्यादा जानकारी के लिए, android:layout_height के लिए वैल्यू और android:layout_width सेक्शन में जाकर.
android:layout_width
डाइमेंशन या कीवर्ड. ज़रूरी है. ग्रुप की चौड़ाई, जैसे कि डाइमेंशन वैल्यू (या डाइमेंशन संसाधन) या कीवर्ड ("match_parent" या "wrap_content"). ज़्यादा जानकारी के लिए, android:layout_height के लिए वैल्यू और android:layout_width सेक्शन में जाकर.

ViewGroup बेस क्लास में ज़्यादा एट्रिब्यूट इस्तेमाल किए जा सकते हैं. साथ ही, कई और एट्रिब्यूट हर बार लागू होने पर काम करते हैं ViewGroup. सभी उपलब्ध एट्रिब्यूट की जानकारी के लिए, ViewGroup क्लास से जुड़े रेफ़रंस दस्तावेज़ देखें, उदाहरण के लिए, LinearLayout एक्सएमएल एट्रिब्यूट इस्तेमाल करें.

<View>
एक व्यक्तिगत यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट, जिसे आम तौर पर विजेट कहा जाता है. अलग अलग-अलग तरह के View ऑब्जेक्ट में TextView, Button और CheckBox.

विशेषताएं:

android:id
संसाधन आईडी. एलिमेंट के लिए यूनीक रिसॉर्स नाम, जिसका इस्तेमाल करके अपने आवेदन से View का रेफ़रंस पाएं. ज़्यादा के लिए जानकारी के लिए, android:id की वैल्यू सेक्शन देखें.
android:layout_height
डाइमेंशन या कीवर्ड. ज़रूरी है. एलिमेंट की ऊंचाई, जैसे डाइमेंशन की वैल्यू (या डाइमेंशन संसाधन) या कीवर्ड ("match_parent" या "wrap_content"). ज़्यादा जानकारी के लिए, android:layout_height के लिए वैल्यू और android:layout_width सेक्शन में जाकर.
android:layout_width
डाइमेंशन या कीवर्ड. ज़रूरी है. एलिमेंट की चौड़ाई, जैसा डाइमेंशन की वैल्यू (या डाइमेंशन संसाधन) या कीवर्ड ("match_parent" या "wrap_content"). ज़्यादा जानकारी के लिए, android:layout_height के लिए वैल्यू और android:layout_width सेक्शन में जाकर.

View बेस क्लास में ज़्यादा एट्रिब्यूट इस्तेमाल किए जा सकते हैं. साथ ही, कई और एट्रिब्यूट हर बार लागू होने पर काम करते हैं View. ज़्यादा जानकारी के लिए, लेआउट पढ़ें. इसके लिए सभी उपलब्ध एट्रिब्यूट का रेफ़रंस, इससे जुड़ा रेफ़रंस दस्तावेज़ देखें. उदाहरण के लिए, TextView एक्सएमएल एट्रिब्यूट.

<requestFocus>
View ऑब्जेक्ट को दिखाने वाले किसी भी एलिमेंट में यह खाली एलिमेंट शामिल हो सकता है, इस सुविधा की मदद से, उपयोगकर्ता मुख्य तौर पर स्क्रीन पर फ़ोकस करता है. आप इनमें से सिर्फ़ एक का इस्तेमाल कर सकते हैं एलिमेंट प्रति फ़ाइल.
<include>
इस लेआउट में एक लेआउट फ़ाइल शामिल है.

विशेषताएं:

layout
लेआउट के बारे में जानकारी देने वाला संसाधन. ज़रूरी है. लेआउट का रेफ़रंस संसाधन.
android:id
संसाधन आईडी. यह विकल्प, शामिल किए गए लेआउट में रूट व्यू को दिए गए आईडी को बदल देता है.
android:layout_height
डाइमेंशन या कीवर्ड. यहां रूट व्यू को दी गई ऊंचाई बदल देता है शामिल लेआउट. यह सिर्फ़ तब लागू होगा, जब android:layout_width के बारे में जानकारी दी गई हो.
android:layout_width
डाइमेंशन या कीवर्ड. यहां रूट व्यू को दी गई चौड़ाई बदल देता है शामिल लेआउट. यह सिर्फ़ तब लागू होगा, जब android:layout_height के बारे में जानकारी दी गई हो.

आपके पास <include> में लेआउट के ऐसे अन्य एट्रिब्यूट शामिल करने का विकल्प भी होता है जो वे शामिल लेआउट में रूट एलिमेंट के साथ काम करते हैं और वे रूट एलिमेंट होना चाहिए.

चेतावनी: अगर आपको इसका इस्तेमाल करके लेआउट एट्रिब्यूट को बदलना है <include> टैग, आपको दोनों को ओवरराइड करना होगा इसके लिए ऑर्डर करने पर, android:layout_height और android:layout_width अन्य लेआउट एट्रिब्यूट का इस्तेमाल करें.

लेआउट शामिल करने का एक और तरीका है ViewStub: लाइटवेट देखने के लिए लेआउट का उपयोग करता है. जब आप ऐसा करते हैं, तो इसमें लेआउट फ़ाइल को android:layout एट्रिब्यूट से तय किया गया है. ViewStub का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, लोड करना पढ़ें मांग पर मिलने वाले व्यू.

<merge>
ऐसा रूट एलिमेंट जो लेआउट की हैरारकी में न हो. इसका इस्तेमाल इस तरह किया जा रहा है: रूट एलिमेंट तब काम आता है, जब आपको पता हो कि इस लेआउट को किसी लेआउट में रखा गया है जिसमें पहले से ही सही पैरंट View शामिल हो, जिसमें <merge> एलिमेंट.

यह खास तौर पर तब मददगार होता है, जब आप इस लेआउट को शामिल करने वाले हों <include> का इस्तेमाल करके दूसरी लेआउट फ़ाइल में अपलोड कर सकते हैं और इस लेआउट के लिए किसी दूसरे ViewGroup कंटेनर की ज़रूरत नहीं है. ज़्यादा के लिए लेआउट मर्ज करने के बारे में जानकारी पाने के लिए, <include> के साथ लेआउट का फिर से इस्तेमाल करना पढ़ें.

android:id का मान

आम तौर पर, आईडी वैल्यू के लिए इस सिंटैक्स फ़ॉर्म का इस्तेमाल किया जाता है: "@+id/name", जैसा कि इस उदाहरण में दिखाया गया है. कॉन्टेंट बनाने प्लस का निशान, + बताता है कि यह एक नया संसाधन आईडी है और aapt टूल अगर यह पहले से मौजूद नहीं है, तो R.java क्लास में एक नया रिसॉर्स इंटीजर डालें.

<TextView android:id="@+id/nameTextbox"/>

nameTextbox नाम अब इस एलिमेंट से जुड़ा एक संसाधन आईडी है. इसके बाद आप वह TextView देखें जिससे आईडी Java में जुड़ी हुई है:

Kotlin

val textView: TextView? = findViewById(R.id.nameTextbox)

Java

TextView textView = findViewById(R.id.nameTextbox);

यह कोड TextView ऑब्जेक्ट दिखाता है.

हालांकि, अगर आपने पहले ही एक आईडी संसाधन तय कर लिया है और यह पहले से इस्तेमाल कर लिया है, तो आपView android:id वैल्यू में प्लस का निशान मौजूद है.

android:layout_height और Android:layout_width

ऊंचाई और चौड़ाई के मान को इनमें से किसी भी डाइमेंशन इकाइयां Android (px, dp, sp, pt, in, mm) या इन कीवर्ड के साथ काम करती हैं:

वैल्यूब्यौरा
match_parent पैरंट एलिमेंट से मैच करने के लिए डाइमेंशन सेट करता है. एपीआई लेवल 8 में इसे जोड़ा गया fill_parent का बहिष्कार करें.
wrap_content डाइमेंशन को सिर्फ़ उस साइज़ पर सेट करता है जो इस एलिमेंट के कॉन्टेंट के साथ फ़िट होने के लिए ज़रूरी है.

कस्टम व्यू के एलिमेंट

आपके पास अपनी पसंद के मुताबिक View और ViewGroup बनाने का विकल्प है और उन्हें अपने लेआउट पर स्टैंडर्ड लेआउट की तरह लागू करें एलिमेंट. आपके पास एक्सएमएल एलिमेंट में इस्तेमाल किए जा सकने वाले एट्रिब्यूट के बारे में बताने का विकल्प भी होता है. ज़्यादा जानकारी के लिए, कस्टम व्यू कॉम्पोनेंट बनाना लेख पढ़ें.

उदाहरण:
एक्सएमएल फ़ाइल res/layout/main_activity.xml पर सेव की गई:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>

यह ऐप्लिकेशन कोड इसमें Activity का लेआउट लोड करता है onCreate() तरीका:

Kotlin

public override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}

Java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
यह भी देखें: