Computer >> कंप्यूटर >  >> प्रणाली >> Android

कई Android लेआउट का बोध कैसे करें

रैखिक, सापेक्ष, बाधा, टेबल, फ्रेम इत्यादि इत्यादि। जब आप अपना एप्लिकेशन डिज़ाइन करना चाहते हैं, तो चुनने के लिए Android एप्लिकेशन में लेआउट का एक पूरा समूह होता है। सवाल यह है कि कौन सा सबसे अच्छा है?

इससे पहले कि हम अलग-अलग लेआउट का विवरण दें, हम पहले व्यू ऑब्जेक्ट पदानुक्रम और एंड्रॉइड की ड्राइंग प्रक्रिया पर जाएंगे।

देखें और समूह देखें

व्यूग्रुप को किसी भी दृश्य के मूल वर्ग के रूप में और लेआउट के लिए आधार वर्ग के रूप में सोचें। यह एक ऐसी वस्तु का प्रतिनिधित्व करता है जो अन्य विचारों के लिए कंटेनर है। उदाहरण के लिए, एक रैखिक लेआउट एक व्यूग्रुप . है चूंकि इसमें दृश्य और अन्य लेआउट भी हो सकते हैं।

दूसरी ओर, दृश्य UI तत्वों का मूल निर्माण खंड है। दृश्य एक व्यूग्रुप का हिस्सा हो सकते हैं। उदाहरण के लिए, एक टेक्स्ट व्यू एक दृश्य है ।

कई Android लेआउट का बोध कैसे करें
व्यूग्रुप और व्यू का पदानुक्रम

माप -> लेआउट -> ड्रा -> दोहराएं

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

माप

पहले चरण में, प्रत्येक पैरेंट नोड अपने बच्चों के आकार के संबंध में कुछ बाधाओं का पता लगाता है। यह इन सीमाओं को नीचे की ओर अपने बच्चों तक पहुँचाता है, जहाँ प्रत्येक बच्चा अपने स्वयं के आकार (वह कितना बड़ा होना चाहता है) का मूल्यांकन करेगा और उसे दी गई सीमाओं और उसके बच्चों की सीमाओं को ध्यान में रखेगा।

लेआउट

यहां, प्रत्येक नोड स्क्रीन पर अपने प्रत्येक बच्चे का अंतिम आकार और स्थिति तय करेगा।

ड्रा करें

रूट नोड से शुरू होकर, जो खुद को खींचता है, फिर यह अपने बच्चों को खुद को खींचने के लिए कहता है। इस तरह, क्या होता है कि एक माता-पिता को खींचा जाएगा और उसके बच्चों को उसके ऊपर खींचा जाएगा।

उपरोक्त प्रक्रिया को ध्यान में रखते हुए, आपको अपने एप्लिकेशन के लेआउट को यथासंभव उथला रखने का प्रयास करना चाहिए ताकि दृश्य पदानुक्रम को पार करने में लगने वाले समय को कम किया जा सके
कई Android लेआउट का बोध कैसे करें
अनस्प्लैश पर मार्कस स्पिसके द्वारा "मिश्रित-रंगीन फोटो फ्रेम लॉट"

लेआउट ब्रेकडाउन

रैखिक

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

एक रेखीय लेआउट की एक दिलचस्प विशेषता है लेआउट_वेट विशेषता। इसका उपयोग रैखिक लेआउट को यह बताने के लिए किया जाता है कि बच्चे के विचारों के बीच की जगह को कैसे विभाजित किया जाए। यह तब उपयोगी होता है जब आप चाहते हैं कि आपका लेआउट उपकरणों और ओरिएंटेशन के बीच सुसंगत हो।

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="World!"
        />

</LinearLayout>
एक साधारण रेखीय लेआउट

मान लें कि आप पहला टेक्स्ट व्यू चाहते थे, जिसमें नमस्ते, . शब्द हो हमेशा स्क्रीन की चौड़ाई का 3/4 भाग लेने के लिए। ऐसा करने के लिए, हम layout_weight विशेषता का उपयोग कर सकते हैं।

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="4"        // <-- We added a total weight for our layout (4)
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"   // <-- Will have a weight of 3 out of 4 (3/4)
        android:text="Hello" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="World!"
        android:layout_weight="1"   // <-- Will have a weight of 1 out of 4 (1/4)
        />

</LinearLayout>
लेआउट_वेट

रिश्तेदार

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

RelativeLayout की एक उपयोगी विशेषता centerInParent का उपयोग करके बच्चे के दृश्य को केंद्रित करने की क्षमता है। विशेषता।

कई Android लेआउट का बोध कैसे करें
layout_centerInParent टेक्स्ट व्यू को केंद्र में रखता है

बाधा

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

कई Android लेआउट का बोध कैसे करें
टेक्स्ट व्यू की बाधाओं पर ध्यान दें

फ़्रेम

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

फ़्रेमलेआउट के अंदर कई चाइल्ड व्यू होने से बचें क्योंकि बच्चे के विचारों को एक दूसरे को ओवरलैप करने से बचना मुश्किल होगा। आप लेआउट_ग्रेविटी . निर्दिष्ट करके इन चाइल्ड व्यू की स्थिति को नियंत्रित कर सकते हैं प्रत्येक बच्चे के लिए विशेषता।

कई Android लेआउट का बोध कैसे करें

सूची दृश्य/ग्रिड दृश्य

उपयोग करें जब आपको स्क्रीन पर कई आइटम प्रस्तुत करने की आवश्यकता हो (जैसे रेस्तरां मेनू में)। सूची दृश्य एक एकल स्तंभ सूची है जिसे उपयोगकर्ता स्क्रॉल कर सकता है। आप ग्रिड व्यू को एक से अधिक कॉलम वाले लिस्ट व्यू के रूप में सोच सकते हैं।

इन लेआउट के बारे में जानना महत्वपूर्ण है कि दृश्य गतिशील होते हैं और रनटाइम पर बनाए जाते हैं। आइटम को रनटाइम पर पॉप्युलेट करने के लिए, आपको एक एडेप्टर व्यू का उपयोग करने की आवश्यकता है।

कई Android लेआउट का बोध कैसे करें
आप लेआउट_कॉलम और लेआउट_रो का उपयोग करके लेआउट में प्रत्येक आइटम का स्थान निर्दिष्ट कर सकते हैं

टेबललेआउट

ग्रिड व्यू के समान, यह लेआउट अपने बच्चों को पंक्तियों और स्तंभों में व्यवस्थित करता है। प्रत्येक लेआउट में कई TableRow ऑब्जेक्ट होंगे, प्रत्येक एक पंक्ति को परिभाषित करेगा।

कई Android लेआउट का बोध कैसे करें
हमारे पास दो TableRow एलिमेंट हैं

जब तक आपको अपने लिए सबसे अच्छा काम करने वाला लेआउट न मिल जाए, तब तक अलग-अलग लेआउट आज़माने से न डरें। नीचे दी गई टिप्पणियों में मुझे बेझिझक बताएं कि कौन सा लेआउट आपके लिए सबसे उपयोगी है और क्यों।


  1. अपने कोटलिन एंड्रॉइड एनिमेशन को कैसे सुलभ बनाएं

    पहली बार Android योगदान के लिए उदाहरणों पर शोध करते समय, कोटलिन में लिखे गए एनिमेशन के लिए कुछ उदाहरण मौजूद थे। देशी एनिमेशन में अभिगम्यता संबंधी विचारों के कुछ कोड उदाहरण भी थे। तो अब हम शुरू करें! आइए कोटलिन में एक देशी विस्तार एनीमेशन लिखने पर ध्यान दें, और बात करें कि टॉकबैक या बढ़े हुए टेक्स्ट

  1. 2019 में Android ऐप कैसे विकसित करें:'नए' Android को अपनाना

    या बिटोत्सव 19 ऐप कैसे हकीकत बन गया पृष्ठभूमि:Pantheon 17 लगभग दो साल पहले, सितंबर 2017 में, एक दोस्त, अशांक अंशुमन ने मुझे हमारे संस्थान के तकनीकी उत्सव के लिए एक ऐप पर काम करने के लिए राजी किया। हमने लगभग दो सप्ताह तक काम किया, दिन और रात, इसे उत्सव के लिए समय पर रिलीज के लिए तैयार किया। हालाँ

  1. Android Studio 4.0 - समझाया गया सबसे रोमांचक अपडेट

    एक महामारी के बीच, Google ने अंततः 28 मई, 2020 को Android Studio 4.0 का अपना स्थिर संस्करण जारी किया। प्रत्येक रिलीज़ अपने स्वयं के दिलचस्प अपडेट और बग फिक्स लाता है जो डेवलपर्स को स्मार्ट कोड करने और ऐप्स को पहले से कहीं अधिक तेजी से विकसित करने में मदद करते हैं। और Android Studio 4.0 कोई अपवाद न