Layout Editor Android Studio में एक विज़ुअल XML लेआउट एडिटर है जो आपको मैन्युअल रूप से कोड लिखे बिना Android एप्लिकेशन इंटरफ़ेस बनाने की अनुमति देता है। आइए जानें कि यह क्या है, ConstraintLayout और LinearLayout के साथ कैसे काम करें, कंपोनेंट पैलेट का उपयोग करें और Properties Panel के माध्यम से विशेषताओं को कॉन्फ़िगर करें।
मुख्य बिंदु
Layout Editor Android Studio में निर्मित एक उपकरण है जो Android एप्लिकेशन के यूज़र इंटरफ़ेस को विज़ुअली डिज़ाइन करने के लिए है। यह res/layout/ फ़ोल्डर में किसी XML लेआउट फ़ाइल पर डबल-क्लिक करने पर खुलता है और Code, Design और Split टैब के बीच स्विच करने वाले निचले पैनल के माध्यम से उपलब्ध होता है। डेवलपर पैलेट से कंपोनेंट्स को कैनवास पर खींच सकता है, उनकी प्रॉपर्टीज़ कॉन्फ़िगर कर सकता है और रीयल टाइम में बदलाव देख सकता है।
यह उपकरण दो डिस्प्ले मोड का समर्थन करता है: Design (वास्तविक विजेट प्रस्तुतीकरण के साथ विज़ुअल कैनवास) और Blueprint (बाधाओं और सीमाओं के साथ योजनाबद्ध प्रतिनिधित्व)। Split मोड एक साथ XML कोड और विज़ुअल कैनवास दिखाता है। उनके बीच स्विच करना एडिटर के ऊपरी बाएँ कोने में बटनों का उपयोग करके किया जाता है।
Layout Editor प्रत्येक उपयोगकर्ता क्रिया के लिए स्वचालित रूप से XML कोड उत्पन्न करता है: एक तत्व जोड़ना, मार्जिन सेट करना, बाधा बनाना। यह डेवलपर को दर्जनों XML विशेषताओं को याद नहीं रखने देता और विज़ुअल परिणाम पर ध्यान केंद्रित करने देता है। उत्पन्न कोड को Code टैब में हमेशा मैन्युअल रूप से संपादित किया जा सकता है।
| मोड | विवरण | शॉर्टकट |
|---|---|---|
| Design | वास्तविक कंपोनेंट्स के साथ विज़ुअल कैनवास | Shift + D |
| Blueprint | बाधाओं और सीमाओं के साथ योजना | Shift + B |
| Split | XML कोड और कैनवास एक साथ | Shift + S |
Layout Editor इंटरफ़ेस चार क्षेत्रों में विभाजित है: Palette (कंपोनेंट पैलेट), Component Tree (कंपोनेंट ट्री), Design Surface (डिज़ाइन कैनवास) और Properties Panel (प्रॉपर्टीज़ पैनल)। Palette में श्रेणियों द्वारा समूहित सभी उपलब्ध Android SDK विजेट शामिल हैं: Widgets, Text, Buttons, Containers और अन्य। Component Tree लेआउट पदानुक्रम को एक पेड़ के रूप में प्रदर्शित करता है, जिससे आप कंटेनरों के बीच तत्वों को खींच सकते हैं।
Design Surface एडिटर का केंद्रीय भाग है जहाँ लेआउट प्रदर्शित होता है। कैनवास पर, आप तत्वों का चयन कर सकते हैं, उन्हें स्थानांतरित कर सकते हैं, उनका आकार बदल सकते हैं और बाधाएँ बना सकते हैं। कैनवास के नीचे, विभिन्न स्क्रीनों पर लेआउट का पूर्वावलोकन करने के लिए एक डिवाइस और ओरिएंटेशन स्विचर है। Layout Editor विभिन्न प्रकार के वर्चुअल डिवाइसों पर पूर्वावलोकन का समर्थन करता है: Nexus, Pixel और Samsung।
Properties Panel चयनित तत्व की विशेषताओं को प्रदर्शित करता है: layout_width, layout_height, मार्जिन, पैडिंग, ग्रेविटी और TextView के लिए textSize जैसी सभी विशिष्ट विशेषताएँ। Properties Panel में प्रत्येक परिवर्तन तुरंत कैनवास पर दिखाई देता है और संबंधित XML कोड उत्पन्न करता है।
एडिटर के ऊपरी बाएँ कोने में नियंत्रण बटन हैं: डिस्प्ले मोड चयन, ऑटो-कनेक्ट बाधाओं को सक्षम करना (Autoconnect), बाधाओं को रेखाओं के रूप में प्रदर्शित करना और वर्चुअल डिवाइसों के बीच स्विच करना। "Device for Preview" बटन आपको अनुकूलनशीलता जाँचने के लिए स्मार्टफ़ोन, टैबलेट या Android TV मॉडल चुनने की अनुमति देता है।
ConstraintLayout Google द्वारा सभी नए Android प्रोजेक्ट्स के लिए अनुशंसित प्राथमिक लेआउट है। नेस्टेड LinearLayout के विपरीत, ConstraintLayout एक सपाट पदानुक्रम बनाता है जहाँ प्रत्येक तत्व पैरेंट, अन्य तत्वों या गाइडलाइन से जुड़ा होता है। यह नेस्टिंग गहराई को कम करता है और रेंडरिंग प्रदर्शन में सुधार करता है।
ConstraintLayout में प्रत्येक तत्व में साइड बाधाएँ होती हैं: app:layout_constraintStart_toStartOf, app:layout_constraintEnd_toEndOf, app:layout_constraintTop_toTopOf, app:layout_constraintBottom_toBottomOf। बाधाएँ पैरेंट (parent) या किसी अन्य तत्व के ID से जुड़ी हो सकती हैं। एक बुनियादी XML टेम्पलेट इस प्रकार दिखता है:
इस उदाहरण में, TextView पैरेंट के चारों ओर केंद्रित है। आकार 0dp (match_constraint) का अर्थ है कि चौड़ाई बाएँ से दाएँ बाधा तक फैली हुई है। यह दृष्टिकोण निश्चित आकारों के बिना अनुकूली लेआउट बनाने की अनुमति देता है।
ConstraintLayout Bias का भी समर्थन करता है — एक तत्व के केंद्र का ऑफ़सेट। विशेषताएँ layout_constraintHorizontal_bias और layout_constraintVertical_bias 0 से 1 तक मान लेती हैं, जहाँ 0.5 केंद्र है, 0 शुरुआत से सटा हुआ है, 1 अंत से सटा हुआ है। Bias दो बाधाओं के बीच एक तत्व को सटीक रूप से रखने की अनुमति देता है।
अतिरिक्त ConstraintLayout सुविधाएँ: Guidelines (प्रतिशत या dp में गाइड लाइनें), Barriers (बैरियर जो कई तत्वों को समूहित करते हैं) और Chains (स्थान वितरण के साथ तत्वों की श्रृंखलाएँ)। ये सभी तत्व Layout Editor में कैनवास पर संदर्भ मेनू के माध्यम से सीधे बनाए जाते हैं।
LinearLayout एक कंटेनर है जो चाइल्ड तत्वों को क्रमिक रूप से क्षैतिज (android:orientation="horizontal") या लंबवत (android:orientation="vertical") रूप से व्यवस्थित करता है। यह समझने में सबसे सरल लेआउट है, लेकिन यह जटिल लेआउट के साथ एक नेस्टेड पदानुक्रम बनाता है, जो प्रदर्शन को कम कर सकता है।
LinearLayout की मुख्य विशेषता weight (android:layout_weight) है। यह निर्दिष्ट मानों के अनुसार तत्वों के बीच खाली स्थान को आनुपातिक रूप से वितरित करने की अनुमति देता है। यदि आप दो बटनों के लिए weight="1" सेट करते हैं, तो वे समान चौड़ाई लेंगे। weight="2" वाला तत्व weight="1" वाले से दोगुना स्थान पाएगा। LinearLayout के साथ उदाहरण XML:
इस उदाहरण में, EditText को layout_weight="1" मिलता है और यह labelName और btnSubmit के बीच का सारा खाली स्थान ले लेता है। layout_width="0dp" इंगित करता है कि EditText की चौड़ाई पूरी तरह से weight द्वारा निर्धारित होती है। weight के बिना, आपको एक निश्चित चौड़ाई सेट करनी होती, जो विभिन्न स्क्रीनों के अनुकूल नहीं होती।
LinearLayout की महत्वपूर्ण विशेषताएँ: android:gravity कंटेनर के अंदर सामग्री के संरेखण को नियंत्रित करता है, और android:layout_gravity पैरेंट के अंदर कंटेनर के संरेखण को नियंत्रित करता है। नेस्टेड LinearLayout वाला LinearLayout गहरी नेस्टिंग का एक सामान्य कारण है, इसलिए Google ऐसी संरचनाओं को ConstraintLayout से बदलने की अनुशंसा करता है।
प्रत्येक Android लेआउट res/layout/ फ़ोल्डर में एक XML फ़ाइल है। Layout Editor इस फ़ाइल को स्वचालित रूप से उत्पन्न करता है, लेकिन मैन्युअल अनुकूलन के लिए इसकी संरचना को समझना आवश्यक है। मूल तत्व कंटेनर प्रकार (ConstraintLayout, LinearLayout, FrameLayout) को परिभाषित करता है, जिसके अंदर चाइल्ड विजेट रखे जाते हैं।
ConstraintLayout के साथ एक बुनियादी XML टेम्पलेट में xmlns:android और xmlns:app नामस्थान घोषणाएँ शामिल हैं। app नामस्थान का उपयोग ConstraintLayout लाइब्रेरी की विशेषताओं के लिए किया जाता है, जैसे layout_constraintStart_toStartOf। प्रत्येक तत्व को अन्य तत्वों और Activity या Fragment कोड से संदर्भों के लिए android:id दिया जाना चाहिए।
कई तत्वों और बाधाओं के साथ एक लेआउट खंड का उदाहरण:
इस लेआउट में, ImageView पैरेंट के ऊपर से जुड़ा है और क्षैतिज रूप से केंद्रित है। TextView ImageView के निचले किनारे (Top_toBottomOf) से जुड़ा है। Button TextView के नीचे रखा गया है। बाधाओं की यह श्रृंखला नेस्टेड LinearLayout के बिना एक अनुक्रमिक संरचना बनाती है।
Layout Editor आपको Design / Code / Split टैब के माध्यम से विज़ुअल और टेक्स्ट प्रतिनिधित्व के बीच स्विच करने की अनुमति देता है। Split मोड में, XML में परिवर्तन तुरंत कैनवास पर दिखाई देते हैं और इसके विपरीत। यह उन विशेषताओं के फ़ाइन-ट्यूनिंग के लिए विशेष रूप से सुविधाजनक है जिनमें कैनवास पर विज़ुअल नियंत्रण नहीं है।
Palette Layout Editor का बायाँ पैनल है जिसमें सभी उपलब्ध UI कंपोनेंट शामिल हैं: TextView, Button, ImageView, EditText, ProgressBar, RecyclerView और अन्य। कंपोनेंट श्रेणियों द्वारा समूहित हैं: Widgets, Text, Buttons, Containers, Transitions, Advanced। कैनवास पर एक कंपोनेंट जोड़ने के लिए, बस इसे पैलेट से Design Surface पर खींचें।
Properties Panel (दायाँ पैनल) चयनित तत्व की सभी विशेषताओं को प्रदर्शित करता है। पैनल अनुभागों में विभाजित है: Id (पहचानकर्ता), Layout (आकार और मार्जिन), Transform (रोटेशन और स्केल), Text (TextView सामग्री), Padding and Margin। प्रत्येक विशेषता के लिए, विकल्पों के साथ एक ड्रॉपडाउन मेनू उपलब्ध है: wrap_content, match_parent, match_constraint (0dp)।
Properties Panel की एक विशेषता विज़ुअल मार्जिन एडिटर (पैडिंग और मार्जिन) है जिसमें ग्राफ़िकल प्रदर्शन होता है। संबंधित तीर के बगल में संख्या पर क्लिक करके, आप स्लाइडर का उपयोग करके मार्जिन बदल सकते हैं। Layout Editor स्वचालित रूप से मार्जिन को सामान्य करता है: यदि सभी चार मार्जिन समान हैं, तो विशेषता android:layout_margin का उपयोग किया जाता है, अन्यथा अलग-अलग android:layout_marginStart, android:layout_marginTop इत्यादि।
Properties Panel में Constraint विशेषताओं को संपादित करने के लिए, एक विशेष Constraints अनुभाग है। यह तत्व के सभी बंधनों को प्रदर्शित करता है: पैरेंट या किसी अन्य तत्व का कौन सा पक्ष प्रत्येक किनारे से जुड़ा है। आप बंधन प्रकार बदल सकते हैं, बाधा जोड़ या हटा सकते हैं। आप Blueprint मोड में कैनवास पर संबंधित रेखा पर क्लिक करके भी बाधा हटा सकते हैं।
| श्रेणी | कंपोनेंट | उदाहरण विशेषताएँ |
|---|---|---|
| Widgets | TextView, ImageView, ProgressBar | textSize, src, max |
| Text | EditText, AutoCompleteTextView | hint, inputType, imeOptions |
| Buttons | Button, ImageButton, ToggleButton | text, onClick, backgroundTint |
| Containers | CardView, ScrollView, RecyclerView | cardCornerRadius, clipToPadding |
| Advanced | WebView, MapView, VideoView | loadUrl, zOrderOnTop |
एक अनुकूली लेआउट वह लेआउट है जो विभिन्न स्क्रीन आकारों पर सही ढंग से प्रदर्शित होता है: कॉम्पैक्ट फ़ोन (320dp) से लेकर बड़े टैबलेट (600dp+) और फोल्डेबल डिवाइसों तक। Layout Editor अनुकूली इंटरफ़ेस की जाँच और निर्माण के लिए कई उपकरण प्रदान करता है।
पहला उपकरण टूलबार में Device for Preview है। ड्रॉपडाउन सूची में लोकप्रिय डिवाइस शामिल हैं: Pixel 6, Pixel 9, Samsung Galaxy S25, Nexus 7, Nexus 9, Pixel C और अन्य। आप मनमाने स्क्रीन आकार और पिक्सेल घनत्व (dpi) वाला एक कस्टम डिवाइस जोड़ सकते हैं। डिवाइसों के बीच स्विच करने में एक सेकंड लगता है और दिखाता है कि लेआउट प्रत्येक स्क्रीन पर कैसा दिखता है।
दूसरा उपकरण वैकल्पिक लेआउट बनाने के लिए आकार क्वालिफ़ायर है। Layout Editor में, आप विभिन्न स्क्रीन आकारों, ओरिएंटेशन या घनत्व के लिए एक ही XML फ़ाइल के कई संस्करण बना सकते हैं। उदाहरण के लिए, फ़ोन के लिए activity_main.xml फ़ाइल और टैबलेट के लिए activity_main-sw600dp.xml फ़ाइल। Layout Editor स्वचालित रूप से सक्रिय क्वालिफ़ायर के लिए पूर्वावलोकन दिखाता है।
तीसरा दृष्टिकोण प्रतिशत Guidelines के साथ ConstraintLayout है। विशेषता app:layout_constraintGuide_percent वाली गाइड लाइनें आपको तत्वों को प्रतिशत स्थितियों से जोड़ने की अनुमति देती हैं। उदाहरण के लिए, 50% पर एक गाइडलाइन डिवाइस के आकार की परवाह किए बिना स्क्रीन को आधा विभाजित करती है। XML फ़ाइलों की नकल किए बिना अनुकूली लेआउट बनाने का यह सबसे लचीला तरीका है।
Layout Editor अनुकूलनशीलता समस्याओं के बारे में चेतावनियाँ भी प्रदर्शित करता है: निश्चित चौड़ाई वाले तत्वों पर पीले त्रिकोण, अत्यधिक बड़ी छवियाँ या उप-इष्टतम नेस्टिंग। डेवलपर एक चेतावनी पर क्लिक कर सकता है और सुधार के लिए अनुशंसा प्राप्त कर सकता है।
लेआउट अनुकूलन सीधे रेंडरिंग गति और एप्लिकेशन की स्मूथनेस को प्रभावित करता है। Layout Editor अंतर्निहित Layout Inspector और Problems पैनल में चेतावनियों के माध्यम से समस्याओं का पता लगाने में मदद करता है। मुख्य अनुकूलन नियम: नेस्टिंग को कम करें, नेस्टेड LinearLayout के बजाय ConstraintLayout का उपयोग करें, सही आकार विशेषताएँ चुनें।
नेस्टिंग गहराई प्रदर्शन की मुख्य दुश्मन है। प्रत्येक नेस्टेड कंटेनर माप और ड्राइंग समय बढ़ाता है। Android Studio में Hierarchy View उपकरण लेआउट ट्री दिखाता है। यदि गहराई 5–6 स्तरों से अधिक हो जाती है, तो लेआउट को पुनर्गठित किया जाना चाहिए। ConstraintLayout 3–4 नेस्टिंग स्तरों को एक ही फ्लैट कंटेनर से बदलकर इस समस्या का समाधान करता है।
Layout Editor में XML लेआउट अनुकूलन के लिए अनुशंसाएँ:
Layout Inspector एप्लिकेशन रनटाइम के दौरान लेआउट प्रोफाइलिंग के लिए Android Studio का एक उपकरण है। यह वास्तविक पदानुक्रम, प्रत्येक कंपोनेंट का माप और ड्राइंग समय दिखाता है। Layout Editor Layout Inspector के साथ एकीकृत है: किसी चेतावनी पर डबल-क्लिक करने से विस्तृत रिपोर्ट में संबंधित समस्या खुलती है।
अक्सर पूछे जाने वाले प्रश्न
Layout Editor Android Studio में निर्मित एक विज़ुअल XML लेआउट एडिटर है। यह आपको कंपोनेंट्स को कैनवास पर खींचकर, प्रॉपर्टी पैनल के माध्यम से विशेषताओं को कॉन्फ़िगर करके और रीयल टाइम में परिणाम देखकर Android ऐप UI बनाने की अनुमति देता है। Design, Blueprint और Split मोड लेआउट विकास के सभी चरणों को कवर करते हैं।
अपने सपाट पदानुक्रम और लचीली बाधाओं के कारण ConstraintLayout को Google द्वारा नए प्रोजेक्ट्स के लिए अनुशंसित किया गया है। LinearLayout केवल बिना नेस्टिंग के 2–3 तत्वों वाले सरल रैखिक अनुभागों के लिए उचित है। आप ConstraintLayout को रूट कंटेनर के रूप में उपयोग करके एक लेआउट में दोनों दृष्टिकोणों को जोड़ सकते हैं।
Design मोड में, किसी तत्व के किनारे पर वृत्त पर होवर करें (ConstraintLayout के लिए)। बाएँ माउस बटन को दबाकर रखें और लाइन को पैरेंट या किसी अन्य तत्व की ओर तब तक खींचें जब तक स्नैप दिखाई न दे। संख्यात्मक मार्जिन समायोजन के लिए, Properties Panel, Constraints अनुभाग का उपयोग करें। Autoconnect सक्षम होने पर बाधाएँ स्वचालित रूप से भी बनाई जाती हैं।
पीली चेतावनियाँ संभावित समस्याओं का संकेत देती हैं: उप-इष्टतम प्रदर्शन (गहरी नेस्टिंग, निश्चित आकार), एक्सेसिबिलिटी के लिए सामग्री विवरण की कमी, strings.xml संसाधनों के बजाय हार्डकोडेड स्ट्रिंग्स। प्रत्येक चेतावनी में सुधार के लिए एक अनुशंसा होती है। यदि त्रुटि गंभीर है तो Layout Editor समस्याओं वाले तत्वों को लाल रंग में भी हाइलाइट करता है।
Layout Editor टूलबार में Device for Preview ड्रॉपडाउन सूची का उपयोग करें। सूची से कोई भी डिवाइस चुनें या मनमाने आयामों वाला कस्टम डिवाइस जोड़ें। अनुकूलनशीलता जाँचने के लिए, क्वालिफ़ायर (sw600dp, sw720dp) के साथ वैकल्पिक लेआउट बनाएँ और उसी सूची का उपयोग करके उनके बीच स्विच करें। वास्तविक डिवाइस पर Layout Inspector अंतिम परिणाम दिखाएगा।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें