Fill_parent और wra_content के बीच क्या अंतर है?


276

एंड्रॉइड में, जब लेआउट विजेट होते हैं, तो fill_parent( match_parentएपीआई स्तर 8 और उच्चतर) और के बीच क्या अंतर है wrap_content?

क्या कोई दस्तावेज है जहाँ आप इंगित कर सकते हैं? मुझे इसे अच्छी तरह से समझने में दिलचस्पी है।


33
ध्यान दें कि एपीआई स्तर 8 और उच्चतर में fill_parentइसका नाम बदल दिया गया था match_parent
gfrigon

जवाबों:


266

या तो विशेषता को व्यू (दृश्य नियंत्रण) क्षैतिज या ऊर्ध्वाधर आकार में लागू किया जा सकता है। इसका उपयोग किसी दृश्य या लेआउट के आकार को सेट करने के लिए किया जाता है या तो यह सामग्री है या किसी आयाम को स्पष्ट रूप से निर्दिष्ट करने के बजाय इसके मूल लेआउट का आकार है।

fill_parent( MATCH_PARENTएपीआई स्तर 8 और उच्चतर में पदावनत और नाम बदला गया)

Fill_parent के लिए एक विजेट के लेआउट की स्थापना करने से इसे उस स्थान के रूप में ज्यादा जगह लेने के लिए विस्तार करने के लिए मजबूर किया जाएगा जो कि इसमें रखा गया है Fill

शीर्ष स्तर के लेआउट या fill_parent पर नियंत्रण स्थापित करना इसे पूरी स्क्रीन को लेने के लिए मजबूर करेगा।

wrap_content

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

यह Autosizeसच में विंडोज फॉर्म कंट्रोल की संपत्ति को सेट करने के बराबर है ।

ऑनलाइन दस्तावेजीकरण

एंड्रॉइड कोड प्रलेखन में कुछ विवरण यहां दिए गए हैं


12
क्या होगा अगर छवि की चौड़ाई स्क्रीन की चौड़ाई से अधिक है और मैं इमेजव्यू चौड़ाई को fill_parent के रूप में सेट करता हूं। क्या छवि स्क्रीन आकार में संकुचित हो जाएगी?
जॉन वॉटसन

@ जॉनसन आपको अपना जवाब मिल गया? मैं भी उत्सुक हूँ।
राचेल १

विंडोज फॉर्म कंट्रोल के समतुल्य गुणों को जानना अच्छा है जो उल्लेखित हैं।
रेमपेलोस

आपने क्या देखा @JohnWatson? आपकी कहानी क्या है? उत्तर क्या है ?
उम्मीद है कि

36

fill_parent(पदावनत) =match_parent
बच्चे के दृश्य की सीमा माता-पिता के दृश्य की सीमा से मेल खाती है।

wrap_content
बच्चे के दृश्य की सीमा अपनी स्वयं की सामग्री के आसपास चुपके से लपेटती है।

चीजों को और अधिक स्पष्ट करने के लिए यहां कुछ चित्र दिए गए हैं। हरे और लाल हैं TextViews। सफेद एक LinearLayoutदिखावा है।

यहां छवि विवरण दर्ज करें

प्रत्येक View(ए TextView, ए , ImageViewButton, आदि) को दृश्य के widthऔर सेट करने की आवश्यकता है height। Xml लेआउट फ़ाइल में, जो इस तरह दिख सकती है:

android:layout_width="wrap_content"
android:layout_height="match_parent"

करने के लिए चौड़ाई और ऊंचाई की स्थापना के अलावा match_parentया wrap_content, आप भी उन्हें कुछ निरपेक्ष मूल्य के लिए सेट कर सकते हैं:

android:layout_width="100dp"
android:layout_height="200dp"

आम तौर पर यह उतना अच्छा नहीं है, हालांकि, क्योंकि यह विभिन्न आकार के उपकरणों के लिए उतना लचीला नहीं है। आप समझ गए हैं wrap_contentऔर match_parent, सीखने के लिए अगली बात है layout_weight

यह सभी देखें

छवियों के लिए XML

लंबवत रेखीय लयआउट

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=wrap height=wrap"
        android:background="#c5e1b0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=match height=wrap"
        android:background="#f6c0c0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=match height=match"
        android:background="#c5e1b0"/>

</LinearLayout>

क्षैतिज रैखिकलेआउट

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="WrapWrap"
        android:background="#c5e1b0"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="WrapMatch"
        android:background="#f6c0c0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="MatchMatch"
        android:background="#c5e1b0"/>

</LinearLayout>

ध्यान दें

इस उत्तर में व्याख्या यह है कि कोई मार्जिन या पैडिंग नहीं है । लेकिन फिर भी, मूल अवधारणा अभी भी वही है। सीमा / रिक्ति को व्यू मार्जिन या पैडिंग के मान से समायोजित किया जाता है।


9
  • fill_parent तत्व की चौड़ाई या ऊंचाई को मूल तत्व जितना बड़ा होगा, दूसरे शब्दों में, कंटेनर।

  • wrap_content चौड़ाई या ऊंचाई को उसके भीतर के तत्वों को शामिल करने के लिए आवश्यकतानुसार बड़ा बना देगा।

ANDROID DOC संदर्भ के लिए यहां क्लिक करें


कंटेनर क्या होगा? विभिन्न कंटेनरों के साथ विचारों को कैसे घेरें?
तेज्जरेटुल

2

fill_parent :

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

wrap_content

wrap_contentसभी सामग्री को दिखाने के लिए विस्तारित करने के लिए मजबूर किया जाएगा के आकार का एक दृश्य सेट करें । TextView और imageView नियंत्रण, उदाहरण के लिए, पर सेट है wrap_contentअपनी पूरी आंतरिक पाठ और छवि को प्रदर्शित करेगा। लेआउट तत्व सामग्री के अनुसार आकार बदल देंगे। wrap_contentट्रू के लिए Windows नियंत्रण सेट करने के लिए लगभग स्वचालित रूप से ऑटोसाइज़ विशेषता के आकार का एक दृश्य सेट करें ।

जानकारी के लिए कृपया इस लिंक को देखें: http://developer.android.com/reference/android/view/ViewGroup.LayoutPams.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.