लेआउट रिसॉर्स, यूज़र इंटरफ़ेस (यूआई) के आर्किटेक्चर को 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);
}
- यह भी देखें:
-